看看“UseSWIG”文档,似乎有可能让CMake自动包含在我简单的“hello world”测试中的。但是,到目前为止,如果不将%include std_string.i
添加到我的hello.i'文件中,我就无法成功地完成它
在我的CMakeLists.txt文件公司名称:
SET_SOURCE_FILES_PROPERTIES(hello.i PROPERTIES SWIG_FLAGS "-modern")
SET_SOURCE_FILES_PROPERTIES(hello.i PROPERTIES SWIG_FLAGS "-builtin")
SET_SOURCE_FILES_PROPERTIES(hello.i PROPERTIES SWIG_FLAGS "-modernargs")
SET_SOURCE_FILES_PROPERTIES(hello.i PROPERTIES SWIG_FLAGS "-includeall")
SET_SOURCE_FILES_PROPERTIES(hello.i PROPERTIES SWIG_FLAGS "-importall")
SET_SOURCE_FILES_PROPERTIES(hello.i PROPERTIES SWIG_FLAGS "-py3")
然后,库看起来编译得很好,而不必添加%include std_string.i
。但是,尝试在python中使用内置模块将导致:
我想知道是否有人愿意提供一个简短的例子,说明可能遗漏了什么。在
或者,实际上有必要在“hello.i”中包含“std\u string.i”,而不管是否在我的c++头中包含<string>
?在
(如果没有这两个中的任何一个,make将如预期的那样,声明找不到{
std_string.i
包含SWIG理解std::string
所需的类型映射。如果包装使用std::string
的函数,则必须将其包含在.i
文件中,否则SWIG只会为它不理解的对象生成不透明的包装器(例如Swig Object of type 'std::string *'
)。在注意您通常不想使用}。通常不希望递归地为包含的每个类和函数生成SWIG包装器。在
-includeall
或{相关问题 更多 >
编程相关推荐