我有一个非常复杂的类,我试图在SWIG中创建Python包装器.但是,当我在Python中创建项目的实例时,我无法在没有收到消息的情况下初始化某些数据成员:
>>> myVar = myModule.myDataType()
swig/python detected a memory leak of type 'MyDataType *', no destructor found.
Run Code Online (Sandbox Code Playgroud)
有谁知道我需要做些什么来解决这个问题?有没有我可以用来生成析构函数的标志?
ASk*_*ASk 10
SWIG总是生成析构函数包装器(除非使用%nodefaultdtor指令).但是,如果它对类型一无所知,它将生成一个不透明的指针包装器,这将导致泄漏(以及上面的消息).
请检查这myDataType是SWIG已知的类型.重新运行SWIG并打开调试消息并检查是否有类似的消息
Nothing is known about Foo base type - Bar. Ignored
Run Code Online (Sandbox Code Playgroud)
如上所述接收消息意味着SWIG不能完全了解您的类型层次结构,因此对有限的信息进行操作 - 这可能导致它无法生成dtor.
hha*_*fez -13
错误消息对我来说非常清楚,您需要为此类型定义一个析构函数。
| 归档时间: |
|
| 查看次数: |
9929 次 |
| 最近记录: |