py2exe mingw编译

时间:2011-11-17 09:52:03

标签: gcc mingw py2exe

所以,我想用mingw&编译py2exe。我收到了一个错误。有人知道如何解决这个问题吗?

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 个答案:

答案 0 :(得分:1)

由于Python开发人员不遵守MinGW GCC开发,这是一个众所周知的问题:

http://bugs.python.org/issue12641

自2010年以来,由于使用交换机的人感到困惑,GCC删除了该选项。错误报告包含对Python的distutils配置文件之一的修复,您可以在不重建Python或其他任何内容的情况下应用这些文件。


更新:错误很明显,您正在编译的代码正在重新定义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问题后,请务必进行干净的重建。