【问题标题】:Linking Python into my C++ code on windows - linker error在 Windows 上将 Python 链接到我的 C++ 代码 - 链接器错误
【发布时间】:2015-10-11 22:57:49
【问题描述】:

我在尝试将 python 链接到我的 C++ 代码时出错。

这是我得到的错误行:

C:\Python27\libs/libpython27.a(dmmes00855.o):(.idata$7+0x0): undefined reference to `_head_C__build27_cpython_PCBuild_libpython27_a'

collect2.exe: error: ld returned 1 exit status

对于背景,这里是最小的情况:

#include <Python.h>

int main()
{
    Py_Initialize();
}

我正在使用 scons 构建:

import os
env = Environment(ENV = os.environ)
env.Append(CPPPATH = "C:/Python27/include/")
env.Append(LIBPATH = "C:/Python27/libs/")
env.Append(LIBS = "python27")
env.Program("test", "test.cpp")

它会生成以下命令:

g++ -o test.o -c -IC:\Python27\include test.cpp
g++ -o test.exe test.o -LC:\Python27\libs -lpython27

编译器是我在 Qt 下载中使用的 mingw。

【问题讨论】:

    标签: python c++ windows linker


    【解决方案1】:

    g++ 命令没有问题。显然,这是一个错误

    错误修复版本2.7.10 当前可用。首先升级到2.7.10

    然后你需要用

    创建libpython27.a
    gendef.exe python27.dll
    

    dlltool.exe --dllname python27.dll --def python27.def --output-lib libpython27.a
    

    并将其放在C:\Python27\libs

    现在用 MinGW 编译可以正常工作了。

    【讨论】:

      猜你喜欢
      • 2015-12-05
      • 2012-12-26
      • 2011-09-24
      • 1970-01-01
      • 2011-03-22
      • 1970-01-01
      • 2013-07-12
      • 2015-10-17
      • 1970-01-01
      相关资源
      最近更新 更多