Swig:输入中的语法错误(3)

Awa*_*ias 5 c syntax swig

./theheader.h:349: Error: Syntax error in input(3).
Run Code Online (Sandbox Code Playgroud)

违规行:

string read_gdbm(GDBM_FILE dbf, string key_str, bool show_err = gbls.verbose);
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

Pau*_*ice 5

通常,SWIG中的语法错误意味着它无法理解所讨论的行(这很烦人,因为行号不跟随%defines之类的宏)。因此,我建议您检查string(应该std::string定义了吗?),GDBM_FILE(是否已经定义了?应该在名称空间中吗?),也许gbls.verbose(已经定义了吗?)对SWIG有意义。swig使用该-E选项(确保重定向标准输出),找到相应的行并向后搜索涉及的每种类型可能会有所帮助。您可能需要添加一些#include

还要检查上一行,以确保您没有遗漏分号或类似内容。


小智 5

作为旁注,我由于不同的原因遇到了同样的问题:我试图使用向量<向量<double>>。现在,根据 C++99 标准,“>>”字符序列不得与模板一起使用,因此会弹出 swig 错误消息。解决方案是简单地添加一个额外的空格来分隔它们。