我正在使用C ++和Swig构建一个库,使用cmake生成我的构建文件。该库是一组类,对于我所拥有的每个类,
class1.cpp, class1.h, class1.i
class2.cpp, class2.h, class2.i
etc for each classn,
在我的CMakeLists.txt中,我有以下几行,
SET_SOURCE_FILES_PROPERTIES(classn.i PROPERTIES CPLUSPLUS ON)
SET_SOURCE_FILES_PROPERTIES(classn.i PROPERTIES SWIG_FLAGS "-includeall")
SWIG_ADD_MODULE(Classn python classn.i classn.cpp)
SWIG_LINK_LIBRARIES(Classn ${PYTHON_LIBRARIES})
每个n级。这工作正常,功能完善,但在我的python脚本中使用它有点痛苦。如果我想创建一个类n的对象,例如我会有
class_object = Classn.Classn();
我更喜欢的是
class_object = my_library.Classn();
如何实现这一目标?
答案 0 :(得分:2)
您可以在其中创建单独的my_library.i
文件和%include
所需的类。见File inclusion
%module my_library
%include class1.i
%include class2.i
然后添加类似
的内容SWIG_ADD_MODULE(my_library python my_library.i )
SWIG_LINK_LIBRARIES(my_library ${PYTHON_LIBRARIES})
到适当的cmake文件