C 编译器无法创建可执行文件 - Cygwin/MinGW
Posted
技术标签:
【中文标题】C 编译器无法创建可执行文件 - Cygwin/MinGW【英文标题】:C compiler cannot create executables - Cygwin/MiniGW 【发布时间】:2013-06-17 11:04:54 【问题描述】:我正在尝试从源代码编译 Pyaudio(一个 Python 模块),因为我使用的是 Windows,并且只有 32 位二进制文件可用 - 我需要 64 个。在 these instructions 之后,我下载了 Cygwin,并且安装每个组件,以确保安全。首先需要安装另一个模块 Portaudio。
当我运行CFLAGS="-mno-cygwin" LDFLAGS="-mno-cygwin" ./configure
时,我收到错误configure: error: C compiler cannot create executables. See 'config.log' for more details.
config.log 在该消息下方有一行:gcc: The -mno-cygwin flag has been removed; use a mingw-targeted cross-compiler.
这让我相信 Cygwin 可能使用了错误的编译器;这些说明用于将 MinGw 与 Cygwin 一起使用,但我从未在此过程中指定 minigw。我还想知道 PyAudio 构建文件中是否有某些内容需要更改为 64 位。我对 C、编译、Cygwin 或 MinGW 一无所知,并且对一般编程很陌生。有任何想法吗?我可以提供任何其他信息吗?
【问题讨论】:
【参考方案1】:当前版本的 Cygwin gcc
不再支持 -mno-cygwin
,因为它从未真正正常工作。相反,您应该使用由mingw64-i686-gcc
包提供的适当交叉编译器,然后运行./configure --host=i686-w64-mingw32
。
【讨论】:
另一个替代从 Cygwin 环境交叉编译的选项是使用本机 Windows MinGW 安装(TDM 或 nuwen 发行版非常容易安装)并使用 MinGW 的 MSYS 环境来处理./configure
步骤。我假设 Pyaudio 的配置步骤可以在 MSYS 中工作。
非常感谢。这个答案解决了我发布的问题。后来我在 Cygwin 环境之外的“python setup.py build --static-link -cmingw32”步骤中遇到了其他问题。错误是'cc1.exe:错误:无法识别的命令行选项'-mno-cygwin',错误:命令'gcc'失败,退出状态为1'。尝试不使用 -cming32 时,错误变为“无法找到 vcvarsall.bat”。我最终在lfd.uci.edu/~gohlke/pythonlibs 找到了一个二进制文件,让我可以停止对此进行故障排除。【参考方案2】:
在某些情况下,它是导致问题的防病毒软件。 我有avast,不得不禁用它。
【讨论】:
以上是关于C 编译器无法创建可执行文件 - Cygwin/MinGW的主要内容,如果未能解决你的问题,请参考以下文章