美文网首页
C++调Python

C++调Python

作者: 你猜_19ca | 来源:发表于2019-08-26 15:27 被阅读0次
    • 没有编译好的python36_d.lib库情况下,debug编译遇到如下问题:
    error LNK2019: 无法解析的外部符号 __imp__Py_NegativeRefcount
    error LNK2019: 无法解析的外部符号 __imp___Py_RefTotal
    

    解决办法:
    修改两个头文件
    1 注释掉object.h第56行
    //#define Py_TRACE_REFS
    2 pyconfig.h 375行
    //# define Py_DEBUG
    以上两个宏定义注释掉以后重新编译 问题解决

    • QT的slots关键字和python中object.h中的slots关键字冲突
      解决办法
      修改python的object.h中slots, 换个别名即可.

    • C++调python接口的时候报0xFFFFFFFF
      原因是: 在C++的函数里调用了Py_DECREF释放了内存,导致python再次调用的时候内存地址不变,但是内容为空了,野指针问题
      解决办法: 不在C++局部函数里释放内存,而在销毁C++调用对象时(不再需要调python)再释放掉内存,即在析构函数里调用Py_DECREF

    如果只是python的返回结果PyObject对象,可以直接在局部函数里释放

    相关文章

      网友评论

          本文标题:C++调Python

          本文链接:https://www.haomeiwen.com/subject/pixdectx.html