我可以禁止 class/function 包含在 "truly lazy" SWIG 接口文件中吗?
Can I inhibit class/function inclusion in a "truly lazy" SWIG interface file?
我已经使用 SWIG tutorial 中的 "truly lazy" 方法成功地为 C# 包装了一个 C++ 库。它看起来像这样:
%module example
%{
/* Includes the header in the wrapper code */
#include "header1.h"
#include "header2.h"
%}
/* Parse the header file to generate wrappers */
%include "header1.h"
%include "header2.h"
但是,这包括一两个方法和 class我不想要的方法。我可以禁止在 %include
之后包含 class and/or 方法吗?比如添加:
%ignore Math.functionNotToInclude(int x, int y);
是的,您可以,但是您将 %ignore
指令放在 %include
...
之前
%ignore functionNotToInclude; // note, not the whole signature
%include "header2.h"
有关详细信息,请参阅 SWIG 3.0 手册中的 "Simple renaming of specific identifiers"。 (忽略被认为是重命名的一种特殊情况。)
我已经使用 SWIG tutorial 中的 "truly lazy" 方法成功地为 C# 包装了一个 C++ 库。它看起来像这样:
%module example
%{
/* Includes the header in the wrapper code */
#include "header1.h"
#include "header2.h"
%}
/* Parse the header file to generate wrappers */
%include "header1.h"
%include "header2.h"
但是,这包括一两个方法和 class我不想要的方法。我可以禁止在 %include
之后包含 class and/or 方法吗?比如添加:
%ignore Math.functionNotToInclude(int x, int y);
是的,您可以,但是您将 %ignore
指令放在 %include
...
%ignore functionNotToInclude; // note, not the whole signature
%include "header2.h"
有关详细信息,请参阅 SWIG 3.0 手册中的 "Simple renaming of specific identifiers"。 (忽略被认为是重命名的一种特殊情况。)