我正在尝试在Windows 10上使用python 2.7安装pyslalib package并继续获得以下内容:
“collect2.exe:错误:ld返回1退出状态”
当我尝试运行“python setup.py install”时出现消息。我认为这可能是我的mingw配置的问题,但我似乎无法找到问题。
对此问题的任何帮助将不胜感激。我在周末的大部分时间都在吃饭。
谢谢,
输出错误是:
C:\Python27\libs/libpython27.a(dmmes01026.o):(.idata$7+0x0): undefined reference to `_head_C__build27_cpython_PCBuild_libpython27_a'
C:\Python27\libs/libpython27.a(dmmes00281.o):(.idata$7+0x0): undefined reference to `_head_C__build27_cpython_PCBuild_libpython27_a'
C:\Python27\libs/libpython27.a(dmmes00105.o):(.idata$7+0x0): undefined reference to `_head_C__build27_cpython_PCBuild_libpython27_a'
C:\Python27\libs/libpython27.a(dmmes00253.o):(.idata$7+0x0): undefined reference to `_head_C__build27_cpython_PCBuild_libpython27_a'
C:\Python27\libs/libpython27.a(dmmes00227.o):(.idata$7+0x0): undefined reference to `_head_C__build27_cpython_PCBuild_libpython27_a'
C:\Python27\libs/libpython27.a(dmmes00712.o):(.idata$7+0x0): more undefined references to `_head_C__build27_cpython_PCBuild_libpython27_a' follow
collect2.exe: error: ld returned 1 exit status
答案 0 :(得分:5)
这看起来像我最近遇到的问题。我认为Python中包含的libpython27.a
存在问题(我的版本是2.7.10)。根据找到的说明here从libpython27.a
创建我自己的python27.dll
解决了问题。
要创建Python扩展,您需要链接Python 图书馆。不幸的是,大多数Python发行版都提供了
Python22.lib
,Microsoft Visual C ++格式的库。 GCC期待a .a文件(准确地说libpython22.a
。)。这是如何转换python22.lib
到libpython22.a
:
- 下载pexport(从这里或 https://web.archive.org/web/20000829082204/http://starship.python.net/crew/kernr/mingw32/pexports-0.42h.zip)。
- 获取
Python22.dll
(它应该在你的硬盘上的某个地方)。- 运行:
pexports python22.dll > python22.def
这将提取所有符号 来自python22.dll
并将其写入python22.def
。- 运行:
dlltool --dllname python22.dll --def python22.def --output-lib libpython22.a
这将创建libpython22.a
(dlltool
是MinGW实用程序的一部分。)- 将
醇>libpython22.a
复制到c:\python22\libs\
(与...相同的目录)python22.lib
)。这个技巧适用于所有Python版本, 包括Python的未来版本。你也可以使用这个技巧 转换其他库。