2011-11-17 217 views
2

所以,我想編譯py2exe使用mingw &我得到一個錯誤。有人知道如何解決這個問題嗎?py2exe mingw編譯

D:\devel\py2exe-0.6.9>python setup.py build -cmingw32 
running build 
running build_py 
creating build 
creating build\lib.win32-2.7 
copying zipextimporter.py -> build\lib.win32-2.7 
creating build\lib.win32-2.7\py2exe 
copying py2exe\boot_common.py -> build\lib.win32-2.7\py2exe 
copying py2exe\boot_com_servers.py -> build\lib.win32-2.7\py2exe 
copying py2exe\boot_ctypes_com_server.py -> build\lib.win32-2.7\py2exe 
copying py2exe\boot_service.py -> build\lib.win32-2.7\py2exe 
copying py2exe\build_exe.py -> build\lib.win32-2.7\py2exe 
copying py2exe\mf.py -> build\lib.win32-2.7\py2exe 
copying py2exe\__init__.py -> build\lib.win32-2.7\py2exe 
creating build\lib.win32-2.7\py2exe\resources 
copying py2exe\resources\StringTables.py -> build\lib.win32-2.7\py2exe\resources 
copying py2exe\resources\VersionInfo.py -> build\lib.win32-2.7\py2exe\resources 
copying py2exe\resources\__init__.py -> build\lib.win32-2.7\py2exe\resources 
running build_ext 
building '_memimporter' extension 
creating build\temp.win32-2.7 
creating build\temp.win32-2.7\Release 
creating build\temp.win32-2.7\Release\source 
C:\MinGW\bin\gcc.exe -mno-cygwin -mdll -O -Wall -DPYTHONDLL=\"PYTHON27.DLL\" -DPYTHONCOM=\"pythoncom27.dll\" -IC:\Python27\include -IC:\Python27\PC -c source/MemoryModule.c -o build\temp.win32-2.7\Release\source\memorymodule.o 
cc1.exe: error: unrecognized command line option '-mno-cygwin' 
error: command 'gcc' failed with exit status 1 

如何從構建選項中刪除-mno-cygwin?

回答

1

這是一個已知的問題,因爲由Python開發者unmaintenance遵循MinGW的GCC開發:

http://bugs.python.org/issue12641

自2010年以來,一些GCC刪除的選擇,由於混淆誰使用交換機的人。該錯誤報告包含了一個修復了Python的distutils配置文件之一,您可以在不重建Python或任何東西的情況下應用這些文件。


UPDATE:錯誤是明確的,你編譯代碼是重新定義了在一個Python頭定義的類型:

source/Python-version.h:13:18: error: redefinition of typedef 'Py_ssize_t' 
C:\Python27\include/pyport.h:172:25: note: previous declaration of 'Py_ssize_t' 

在你的代碼刪除的Py_ssize_t typedef的。可能有一些配置錯誤。修復-mno-cygwin問題後,請務必進行徹底重建。

+0

我有刪除的distutils -mno-cygwin的,所以現在在編譯打破 [下面是代碼(http://paste.pound-python.org/show/3384)沒有任何人知道如何解決這個問題? – alex