我试图在我的C++代码中使用#include <Python.h>,当我编译代码时,出现以下错误:
#include <Python.h>
fatal error LNK1104: cannot open file 'python33_d.lib'
我试图在我的计算机上找到python33_d.lib以包括在我的链接器依赖项中,但我找不到它。我已经能够找到python33.lib。在哪里可以找到python33_d.lib,或者如何解决此问题?
python33_d.lib
python33.lib
fnx2tebb1#
python bug tracker的简单解决方案:
#ifdef _DEBUG #undef _DEBUG #include <python.h> #define _DEBUG #else #include <python.h> #endif
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。
qgelzfjb3#
*_d.lib用于两柴组建。请改用出版组建。
*_d.lib
crcmnpdw4#
如果您通过www.example.com上的安装程序安装pythonpython.org,则可以在安装时选择“自定义安装”来告诉安装程序包括调试符号和二进制文件(如pythonXX_d. dll文件(我想它在第二个定制页面上)。如果您自己不擅长构建项目,这可能是最简单的解决方案(就像我一样)。很遗憾,我没有看到任何方法可以在anaconda发行版中做到这一点。
6rvt4ljy5#
打开 Python 安装 程序 ( . exe ) - - 修改 - - 下一步 - - 启用 复选 框 Debug Symbols and Libs
Debug Symbols and Libs
gkl3eglg6#
如果你使用Swig来生成python Package 器,那么你可以定义宏SWIG_PYTHON_INTERPRETER_NO_DEBUG。在这种情况下,它不会查找python**_d.lib
uoifb46i7#
作为对@liorda的回答的补充:它可能会出现与其他库和python的冲突。错误C1017:可能出现无效的整数常量表达式。为此,请使用@liorda的代码并替换
#define _DEBUG
与
#define _DEBUG 1
7条答案
按热度按时间fnx2tebb1#
python bug tracker的简单解决方案:
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。
qgelzfjb3#
*_d.lib
用于两柴组建。请改用出版组建。crcmnpdw4#
如果您通过www.example.com上的安装程序安装pythonpython.org,则可以在安装时选择“自定义安装”来告诉安装程序包括调试符号和二进制文件(如pythonXX_d. dll文件(我想它在第二个定制页面上)。如果您自己不擅长构建项目,这可能是最简单的解决方案(就像我一样)。很遗憾,我没有看到任何方法可以在anaconda发行版中做到这一点。
6rvt4ljy5#
打开 Python 安装 程序 ( . exe ) - - 修改 - - 下一步 - - 启用 复选 框
Debug Symbols and Libs
gkl3eglg6#
如果你使用Swig来生成python Package 器,那么你可以定义宏SWIG_PYTHON_INTERPRETER_NO_DEBUG。在这种情况下,它不会查找python**_d.lib
uoifb46i7#
作为对@liorda的回答的补充:它可能会出现与其他库和python的冲突。错误C1017:可能出现无效的整数常量表达式。
为此,请使用@liorda的代码并替换
与