在C++'python33_d.lib'中使用Python 3.3未找到

use*_*858 16 c++ python visual-c++

我正在尝试使用#include <Python.h>我的C++代码,当我编译代码时,我得到以下错误:

fatal error LNK1104: cannot open file 'python33_d.lib'
Run Code Online (Sandbox Code Playgroud)

现在我试图python33_d.lib在我的计算机上找到包含在我的链接器依赖项中的文件,但是我找不到.我找到了python33.lib.

我在哪里可以找到python33_d.lib,或者我该如何解决这个问题?

小智 23

如果您需要调试版本(就像我的工作一样),可以自己构建库:

  1. http://www.python.org/download下载源代码tarball
  2. 解压缩tarball(7zip会做到这一点)并进入生成的目录(应该像Python-3.3.2).
  3. 从Python目录中,转到PCBuild文件夹.这里有两个重要的文件:readme.txt,其中包含在Windows中构建Python的说明(即使它使用UNIX换行样式...),以及pcbuild.sln,它是构建Python的Visual Studio解决方案.
  4. 在Visual Studio中打开pcbuild.sln.(我假设您使用的是Visual Studio 10; readme.txt包含旧版Visual Studio的特定说明.)
  5. 确保将Visual Studio设置为"调试"配置,然后为适当的体系结构(x64或Win32)构建解决方案.您可能会遇到一些失败的子项目,但并不是所有这些都是构建python33_d所必需的; 根据我的统计,8个版本失败了,无论如何我得到了一个工作的.lib文件.
  6. 您将在PCBuild文件夹(如果构建Win32)或amd64子文件夹(如果构建x64)中找到python33_d.lib和python33_d.dll.


lio*_*rda 20

来自python bug跟踪器的简单解决方案:

#ifdef _DEBUG
  #undef _DEBUG
  #include <python.h>
  #define _DEBUG
#else
  #include <python.h>
#endif
Run Code Online (Sandbox Code Playgroud)


Ign*_*ams 12

*_d.lib用于调试版本.切换到发布版本.


小智 10

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

  • 这应该是公认的答案,重新安装 Python(包括所有调试符号)实际上需要 1 分钟。 (3认同)
  • 真的。这应该被接受为答案。它无需任何调整即可工作。 (2认同)

aqu*_*tle 5

如果通过python.org上的安装程序安装python,则可以通过在安装时选择“自定义安装”来告诉安装程序包括调试符号和二进制文件(例如pythonXX_d.dll文件)(我认为它在第二个自定义页面上)。如果您自己(例如我)不太擅长构建项目,这可能是最简单的解决方案。太糟糕了,我看不到用anaconda发行版能做到这一点的任何方法。

  • 请注意,此选项不在您选择自定义后看到的第一个屏幕上(这让我有点失望)。您必须单击“下一步”按钮,然后您将看到该选项。 (2认同)