問題描述
我正在嘗試在 Windows 10 上使用 python 2.7 安裝 pyslalib 包,并不斷收到以下信息:
I'm trying to install the pyslalib package using python 2.7 on Windows 10 and keep getting the following:
collect2.exe:錯誤:ld 返回 1 個退出狀態"
"collect2.exe: error: ld returned 1 exit status"
當我嘗試運行python setup.py install"時的消息.我認為這可能是我的 mingw 配置的問題,但我似乎無法找到問題所在.
message when I try to run "python setup.py install". I think this might be an issue with my mingw configuration, but I can't seem to locate the problem.
對于這個問題的任何幫助將不勝感激.我周末大部分時間都在為此苦苦掙扎.
Any help with this issue would be greatly appreciated. I've eaten up most of the weekend struggling with this.
謝謝,
輸出錯誤是:
C:Python27libs/libpython27.a(dmmes01026.o):(.idata$7+0x0): undefined reference to `_head_C__build27_cpython_PCBuild_libpython27_a'
C:Python27libs/libpython27.a(dmmes00281.o):(.idata$7+0x0): undefined reference to `_head_C__build27_cpython_PCBuild_libpython27_a'
C:Python27libs/libpython27.a(dmmes00105.o):(.idata$7+0x0): undefined reference to `_head_C__build27_cpython_PCBuild_libpython27_a'
C:Python27libs/libpython27.a(dmmes00253.o):(.idata$7+0x0): undefined reference to `_head_C__build27_cpython_PCBuild_libpython27_a'
C:Python27libs/libpython27.a(dmmes00227.o):(.idata$7+0x0): undefined reference to `_head_C__build27_cpython_PCBuild_libpython27_a'
C:Python27libs/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
推薦答案
這好像是我最近遇到的一個問題.我認為 Python 附帶的 libpython27.a
存在問題(我使用的是 2.7.10 版).根據 python27.dll 創建我自己的 libpython27.a
="nofollow">這里解決了這個問題.
This looks like a problem I had recently. I think there is a problem with the libpython27.a
that comes included with Python (I'm on version 2.7.10). Creating my own libpython27.a
from the python27.dll
as per the instructions found here fixed the problem.
要創建 Python 擴展,您需要鏈接到 Python圖書館.不幸的是,大多數 Python 發行版都提供了Python22.lib
,Microsoft Visual C++ 格式的庫.海合會期望一個.a 文件(準確地說是 libpython22.a
.).以下是轉換方法python22.lib
到 libpython22.a
:
To create Python extensions, you need to link against the Python library. Unfortunately, most Python distributions are provided with
Python22.lib
, a library in Microsoft Visual C++ format. GCC expects a .a file (libpython22.a
to be precise.). Here's how to convertpython22.lib
tolibpython22.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:python22libs
(與python22.lib
).
- Download pexport (from here or https://web.archive.org/web/20000829082204/http://starship.python.net/crew/kernr/mingw32/pexports-0.42h.zip).
- Get
Python22.dll
(it should be somewhere on your harddrive). - Run :
pexports python22.dll > python22.def
This will extract all symbols frompython22.dll
and write them intopython22.def
. - Run :
dlltool --dllname python22.dll --def python22.def --output-lib libpython22.a
This will createlibpython22.a
(dlltool
is part of MinGW utilities). - Copy
libpython22.a
toc:python22libs
(in the same directory aspython22.lib
).
這個技巧應該適用于所有 Python 版本,包括 Python 的未來版本.你也可以使用這個技巧轉換其他庫.
This trick should work for all Python versions, including future releases of Python. You can also use this trick to convert other libraries.
這篇關于無法在 Windows 10 上使用 python2.7/MINGW 安裝 pyslalib 包的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!