16得票2回答
Swig/Python 内存泄漏检测到

我有一个非常复杂的类,我正试图在SWIG中创建Python包装器。但是,当我在Python中创建该项的实例时,我无法初始化某些数据成员,否则就会收到以下消息:>>> myVar = myModule.myDataType() swig/python detected a me...

16得票2回答
将std::vector转换为NumPy数组而不复制数据

我有一个C++库,其中一些方法返回一个std::vector,定义如下:public: const std::vector<uint32_t>& getValues() const; 我目前正在使用SWIG将整个库封装为Python库,目前进展顺利。 SWIG成功地封...

16得票2回答
使用Swig生成的Java绑定,如何正确使用add_jar?

我正在使用Swig生成C库的Java绑定。为了实现平台中立,构建系统采用CMake编写。我希望生成一个JAR文件,其中包含Java绑定(即由Swig创建的.java文件编译生成的.class文件)。我正在尝试使用CMake的add_jar()命令进行编译并生成JAR文件。 我的问题是,Swi...

16得票3回答
如何在C++中以最干净的方式调用使用SWIG封装的Python函数?

我有以下代码,它实现了一个带有Python回调函数的简单C++类(ObjWithPyCallback)。想法是使用“this”作为唯一参数调用Python函数。 问题在于,由于ObjWithPyCallback是一个SWIG包装的对象,我需要SWIG typeinfo来创建Python对象。...

16得票1回答
SWIG:%import和%include之间的区别

SWIG文档把这两个指令解释如下: %include: "为了在SWIG接口中包含另一个文件,请使用%include指令...与#include不同,%include每个文件只被包含一次(并且不会在后续的%include声明中重新加载该文件)。因此,在SWIG接口中不需要使用包含保护。" ...

16得票5回答
不同编译器的C++代码混合问题

假设我有两个项目需要链接起来: 用Visual C++编译成DLL文件的C++库。 使用库中类的C++ Builder编译的可执行文件。 我意识到没有标准的C++ ABI,任何尝试直接链接这两个C++项目的方法都会失败。有什么好的自动化方法可以创建兼容层,使我能够完成此操作? 例如,...

15得票4回答
CMake错误:无法找到SWIG(缺失:SWIG_DIR)

我想测试在Node.JS中使用Pocketsphinx,它说我需要安装3.0.7或更高版本的Swig。 我认为我已经正确安装了所有其他依赖项。现在我甚至可以在终端中输入Swig命令,但每当我运行npm install pocketsphinx时,我都会收到这个错误:CMake Error at...

15得票1回答
如何为类类型创建一个输出类型映射?

我之前尝试将SWIG的输出类型映射应用于类类型,遇到了困难,并在这个问题中提出了询问。 那里给我的答案很有帮助,但仍需要我要求SWIG执行类似以下的操作: %apply exportedClassType& OUTPUT { exportedClassType& resul...

15得票2回答
如何在包装包含向量的模板类时让SWIG应用模板?

我正在尝试使用SWIG来包装(在C#中)一些包含模板类的c++代码,该模板类本身包装了一个std::vector<T>。我在互联网上看到了各种关于如何声明矢量类型模板的参考资料,但无法将其与额外的抽象层配合使用。例如,在interface.i文件中,我正在执行以下操作:// int...

15得票2回答
无法为 CTest 测试设置环境变量的问题

我被指派为一个基于C++的项目构建Python绑定(使用SWIG)。该项目使用CMake构建和CTest测试,绑定的构建和测试应该集成到其中。我已经成功地进行了构建,并且在手动运行时测试是有效的,但是我必须设置一些环境变量才能使它们正常工作,而我正在努力为自动化过程设置这些变量。我需要设置LD...