python310_d.lib导致无法解析的外部符号的异常
问题描述
在学习C++调用python的过程中发现,和python不一样要想实现debug必须调用debug的包,而默认python安装是release的包,经过安装编译等踩坑操作后发现以下操作可以直接使用
直接将release的
python310.lib
复制下改个名字成python310_d.lib
就能用
但是会报以下错误
无法解析的外部符号 __imp__Py_NegativeRefcount,函数 _Py_DECREF 中引用了该符号
解决方案
实际问题在于debug与release差异造成的,造成差异的函数来自于pyconfig.h
、object.h
以下两种方法都能解决这种问题:
- debug模式下直接不用,在cpp代码中加入
1 |
|
修改源码
- pyconfig.h
1
2
3
//# define Py_DEBUG- object.h
1
2
3
//# define Py_REF_DEBUG