【问题标题】:SWIG: %ignore keeps giving "Syntax error in input(1)"SWIG:%ignore 不断给出“输入中的语法错误(1)”
【发布时间】:2016-07-19 17:08:30
【问题描述】:

如果这个问题很愚蠢,请原谅我,但我找不到在网络上使用 %ignore 的好例子。我正在尝试使用以下命令为 C++ 代码生成 python 包装器:

swig -python -c++ sample.i

我有一个类似如下的接口文件:

%module sample
%{
#include <file1.h>
#include <file2.h>
%}

%ignore vprint
%include <file1.h>
%include <file2.h>
%include <file3.h>

我试图排除在 file1.h 中定义的 vprint 函数,因为它接受 va_list 作为参数,而 SWIG 不支持包装。当我包含 %ignore 语句时,我收到一条错误消息,指出“输入 (1) 中的语法错误”。没有它,我会收到正常错误,告诉我无法包装我试图忽略的函数。为什么会发生此错误?提前致谢!

【问题讨论】:

  • 这可能是您的标题中的内容,例如__declspec(dllexport),您可以通过包含 windows.i 或其他内容来让 SWIG 接受它。请记住,SWIG 不能递归标头。

标签: python c++ swig


【解决方案1】:

%ignore 后面肯定需要一个分号:

%ignore vprint;

【讨论】:

  • 谢谢!我有点困惑,因为到目前为止我编写的其他 SWIG 文件都不需要分号。
  • @GenericAlias SWIG 可能与分号要求有些不一致。不过,通常额外的不会造成任何伤害。
猜你喜欢
  • 2017-04-08
  • 1970-01-01
  • 1970-01-01
  • 2014-10-04
  • 1970-01-01
  • 2022-01-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多