python310_d.lib导致无法解析的外部符号的异常

2023-12-14 10:59:10

问题描述

在学习C++调用python的过程中发现,和python不一样要想实现debug必须调用debug的包,而默认python安装是release的包,经过安装编译等踩坑操作后发现以下操作可以直接使用

直接将release的python310.lib复制下改个名字成python310_d.lib就能用

但是会报以下错误

无法解析的外部符号 __imp__Py_NegativeRefcount,函数 _Py_DECREF 中引用了该符号

解决方案

实际问题在于debug与release差异造成的,造成差异的函数来自于pyconfig.hobject.h

以下两种方法都能解决这种问题:

  • debug模式下直接不用,在cpp代码中加入
#ifndef _DEBUG
...
出现异常的关键代码
...
#endif
  • 修改源码

    • pyconfig.h
    #ifdef _DEBUG
    //#       define Py_DEBUG
    #endif
    
    • object.h
    #if defined(Py_DEBUG) && !defined(Py_REF_DEBUG)
    //#  define Py_REF_DEBUG
    #endif
    

文章来源:https://blog.csdn.net/qq_26095375/article/details/134986930
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。