【问题标题】:py2exe mingw compilepy2exe mingw 编译
【发布时间】:2011-11-18 06:19:36
【问题描述】:

所以,我想使用 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?

【问题讨论】:

    标签: gcc mingw py2exe


    【解决方案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 问题后进行干净的重建。

    【讨论】:

    • 我已经从 distutils 中删除了 -mno-cygwin,所以现在编译在 Here is code 处中断了,有人知道如何解决吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-01
    • 2021-03-03
    • 2017-12-29
    • 1970-01-01
    • 2015-08-19
    • 2015-12-01
    • 1970-01-01
    相关资源
    最近更新 更多