【发布时间】:2014-03-21 14:12:14
【问题描述】:
考虑一个声明了以下函数的SomeClass.h
void doSomethingSimple(double);
void dealWithComplexClasses(ComplexClass&);
我想在 Java 中公开doSomethingSimple(double),但不想公开dealWithComplexClasses(ComplexClass&)
我尝试了各种方法,例如:
%ignore SomeClass::dealWithComplexClasses(ComplexClass&);
%ignore SomeClass::dealWithComplexClasses;
我还找到了this SO question,它得到了回答,但没有帮助我(虽然问题很相似,所以我一定遗漏了一些东西)
但最终 Swig 总是为 ComplexClass 创建一个代理 java 类,并且在 SomeClass.java 中有一个 dealWithComplexClasses(SWIGTYPE_p_ComplexClass class)
我如何告诉 Swig 只为我想在 Java 中公开的内容生成代码?或者忽略我不想公开的函数和类?
【问题讨论】:
-
请注意,如果您不依附于 swig,Boost.Python 可以很好地完成这类事情。