【问题标题】:C compiler cannot create executables - Cygwin/MiniGWC 编译器无法创建可执行文件 - Cygwin/MinGW
【发布时间】: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 一无所知,并且对一般编程很陌生。有任何想法吗?我可以提供任何其他信息吗?

【问题讨论】:

    标签: gcc cygwin mingw portaudio pyaudio


    【解决方案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,不得不禁用它。

    【讨论】:

      猜你喜欢
      • 2021-06-16
      • 2021-02-04
      • 1970-01-01
      • 1970-01-01
      • 2012-12-03
      • 2015-03-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多