Dae*_*all 22 python debugging visual-c++
Python相当愚蠢地在其包含文件中有一个pragma指令,它python26_d.lib
在DEBUG
定义预处理程序变量时强制链接.这是一个问题,因为python安装程序没有附带python26_d.lib
!所以我无法在调试模式下在msvc中构建应用程序.如果我暂时#undef DEBUG
只有一个文件,我会收到很多关于DLL链接不一致的抱怨.如果我更改pythons包含文件中的pragma,我会获得对各种调试函数的未定义引用.
我已经尝试编译我自己的python版本,但它与分布式的python有些不同,我无法使用我的模块与使用vanilla版本的python构建的应用程序
任何人都可以给我任何关于如何绕过这个的建议吗?
谢谢
Pre*_*gha 21
作为解决此问题的方法,请尝试将文件python26.dll复制到python26_d.dll.(我不确定这会起作用;你说你正在调试模式下构建一个SWIG库,SWIG可能会尝试使用Python调试版的功能.如果是这样的话,你别无选择,只能这样做.使用Python的调试版本.)
编辑:来自评论:
您还应编辑pyconfig.h并注释掉"#define Py_DEBUG"行(第374行)
小智 7
在第332行注释掉"#define Py_DEBUG"并修改后
# ifdef _DEBUG
# pragma comment(lib,"python26_d.lib")
# else
Run Code Online (Sandbox Code Playgroud)
至
# ifdef _DEBUG
# pragma comment(lib,"python26.lib")
# else
Run Code Online (Sandbox Code Playgroud)
你不再需要python26_d.lib了.
归档时间: |
|
查看次数: |
9858 次 |
最近记录: |