我正在尝试为C ++库生成Go接口。其中一个库头像这样的代码块
library.h
...
#ifndef DISABLE_FEATURE_X
struct TypeX
{
TypeX();
{
...
}
};
#endif
...
然后我在接口中包含标题,如下所示
library.i
%{
#include <library.h>
%}
...
%include <library.h>
当我生成定义了宏DISABLE_FEATURE_X的Go接口时,Swig会为TypeX
生成接口代码,即使它被宏DISABLE_FEATURE_X
排除。
如何在生成界面时告诉Swig排除代码块?
答案 0 :(得分:1)
最简单的方法是在SWIG接口内定义宏,以便SWIG预处理器看不到函数:
%{
#include <library.h>
%}
...
#define DISABLE_FEATURE_X
%include <library.h>
应该这样做。
SWIG本身也支持-D命令行参数,所以如果您更愿意也可以像编译器一样调用swig -DDISABLE_FEATURE_X ...