【问题标题】:LNK1104 cannot open file 'python39_d.lib'LNK1104 无法打开文件'python39_d.lib'
【发布时间】:2021-02-11 20:46:27
【问题描述】:
#include "C:\Users\user\appdata\local\programs\python\Python39\include\Python.h"

int main()
{
    PyObject* pInt;

    Py_Initialize();

    PyRun_SimpleString("print('Hello World from Embedded Python!!!')");

    Py_Finalize();
}

我已尝试修复此错误,阅读了 thisthis,但我仍然遇到相同的错误。此外,当我使用 #include <Python.h> 而不是 "C:\Users\user\appdata\local\programs\python\Python39\include\Python.h" 时,我会收到此错误:cannot open source file "Python.h"

【问题讨论】:

  • 你是如何编译这段代码的?你是在告诉编译器在哪里可以找到 python 头文件和库吗?请出示minimal reproducible example
  • @AlanBirtles 这是整个代码。
  • 当您询问编译器和链接器问题时,minimal reproducible example 的一部分是您的编译器和链接器命令
  • 包含问题看起来您需要设置编译器的包含路径。并且链接问题看起来像您没有将包含 python39_d.lib 的文件夹添加到链接器正在寻找库的目录中。

标签: python c++


【解决方案1】:

解决方案:

  1. 对我来说最简单的方法是创建一个重复的 python39.lib 并将第二个副本重命名为 python39_d.lib
  2. python39_d.libpragma 存在于 pyconfig.h 中,可以编辑为 python39.lib

【讨论】:

    【解决方案2】:

    我在 Visual Studio Community 2019 中遇到了同样的错误。 python39_d.lib 仅用于调试,而不是 python39.lib

    我只是将 Visual 置于发布模式,错误就消失了。

    请注意,我的 Python 本地目录中没有 lib python39_d.lib。

    【讨论】:

      【解决方案3】:

      python库python3x_d.lib是python库的调试版本,它是一个可选组件。除非您在 python 安装期间明确启用(通过勾选复选框)“Download debug binaries”选项,否则它不会被安装。简单的选择可能是重新安装 python 并标记“下载调试二进制文件”选项检查。使用调试标志从其源代码构建 Python 是另一种选择,为此付出了巨大的努力。如果您使用的是 Anaconda,我不知道您可以使用哪个选项,我还没有找到这样的选项(实际上我正在使用 anaconda 寻找这样的选项)。

      【讨论】:

        【解决方案4】:

        我遇到了同样的问题,将带有 python39_d.lib 的 lib 文件夹添加到“库目录”

        【讨论】:

          猜你喜欢
          • 2015-11-11
          • 2020-08-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-11-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多