未找到在C++中使用Python 3.3的“python33_d.lib”

vh0rcniy  于 2022-11-19  发布在  Python
关注(0)|答案(7)|浏览(155)

我试图在我的C++代码中使用#include <Python.h>,当我编译代码时,出现以下错误:

fatal error LNK1104: cannot open file 'python33_d.lib'

我试图在我的计算机上找到python33_d.lib以包括在我的链接器依赖项中,但我找不到它。我已经能够找到python33.lib
在哪里可以找到python33_d.lib,或者如何解决此问题?

fnx2tebb

fnx2tebb1#

python bug tracker的简单解决方案:

#ifdef _DEBUG
  #undef _DEBUG
  #include <python.h>
  #define _DEBUG
#else
  #include <python.h>
#endif
46scxncf

46scxncf2#

如果您需要一个调试版本(就像我在工作中所做的那样),可以自己构建库:
1.从http://www.python.org/download下载源代码压缩包
1.解压缩压缩压缩包(7zip就可以了),然后进入结果目录(应该类似于Python-3.3.2)。
1.从Python目录中,转到PCBuild文件夹,这里有两个重要的文件:readme.txt,它包含在Windows中构建Python的说明(即使它使用UNIX换行符样式...),以及pcbuild.sln,它是构建Python的Visual Studio解决方案。
1.在VisualStudio中打开pcbuild.sln。(我假设您使用的是VisualStudio 10; readme.txt包含针对旧版Visual Studio的特定指示)。
1.确保Visual Studio被设置为“debug”配置,然后为您的适当体系结构(x64或Win32)生成解决方案。您可能会得到一些失败的子项目,但不是所有这些都是生成python33_d所必需的;据我统计,有8个构建失败了,但我还是得到了一个可以工作的.lib文件。
1.您可以在PCBuild文件夹(如果生成Win32)或amd 64子文件夹(如果生成x64)中找到python33_d.lib和python33_d.dll。

qgelzfjb

qgelzfjb3#

*_d.lib用于两柴组建。请改用出版组建。

crcmnpdw

crcmnpdw4#

如果您通过www.example.com上的安装程序安装pythonpython.org,则可以在安装时选择“自定义安装”来告诉安装程序包括调试符号和二进制文件(如pythonXX_d. dll文件(我想它在第二个定制页面上)。如果您自己不擅长构建项目,这可能是最简单的解决方案(就像我一样)。很遗憾,我没有看到任何方法可以在anaconda发行版中做到这一点。

6rvt4ljy

6rvt4ljy5#

打开 Python 安装 程序 ( . exe ) - - 修改 - - 下一步 - - 启用 复选 框 Debug Symbols and Libs

gkl3eglg

gkl3eglg6#

如果你使用Swig来生成python Package 器,那么你可以定义宏SWIG_PYTHON_INTERPRETER_NO_DEBUG。在这种情况下,它不会查找python**_d.lib

uoifb46i

uoifb46i7#

作为对@liorda的回答的补充:它可能会出现与其他库和python的冲突。错误C1017:可能出现无效的整数常量表达式。
为此,请使用@liorda的代码并替换

#define _DEBUG

#define _DEBUG 1

相关问题