无法在Windows 10上使用python2.7 / MINGW安装pyslalib软件包

时间:2015-09-13 22:18:15

标签: python mingw windows-10

我正在尝试在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

1 个答案:

答案 0 :(得分:5)

这看起来像我最近遇到的问题。我认为Python中包含的libpython27.a存在问题(我的版本是2.7.10)。根据找到的说明herelibpython27.a创建我自己的python27.dll解决了问题。

  

要创建Python扩展,您需要链接Python   图书馆。不幸的是,大多数Python发行版都提供了   Python22.lib,Microsoft Visual C ++格式的库。 GCC期待a   .a文件(准确地说libpython22.a。)。这是如何转换   python22.liblibpython22.a

     
      
  1. 下载pexport(从这里或   https://web.archive.org/web/20000829082204/http://starship.python.net/crew/kernr/mingw32/pexports-0.42h.zip)。
  2.   
  3. 获取   Python22.dll(它应该在你的硬盘上的某个地方)。
  4.   
  5. 运行:   pexports python22.dll > python22.def这将提取所有符号   来自python22.dll并将其写入python22.def
  6.   
  7. 运行:dlltool --dllname python22.dll --def python22.def --output-lib libpython22.a这将创建libpython22.adlltool是MinGW实用程序的一部分。)
  8.   
  9. libpython22.a复制到c:\python22\libs\(与...相同的目录)   python22.lib)。
  10.         

    这个技巧适用于所有Python版本,   包括Python的未来版本。你也可以使用这个技巧   转换其他库。