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的主要内容,如果未能解决你的问题,请参考以下文章

配置:错误:C 编译器无法创建可执行文件

autotools:C 编译器无法创建可执行文件

C 编译器无法创建可执行文件 - Cygwin/MinGW

bochs-2.2.6:错误:C编译器无法创建可执行文件

configure:error:C编译器在安装Ruby 1.9.3时无法创建可执行文件

MinGW:C++ 编译器无法创建可执行文件