2013-06-20 119 views
6

我试图从源代码编译Pyaudio(一个Python模块),因为我使用的是Windows,并且只有32位二进制文​​件可用 - 我需要64个。以下these instructions我下载了Cygwin,并安装了每个组件,以确保安全。首先需要安装Portaudio,另一个模块。C编译器无法创建可执行文件 - Cygwin/MiniGW

当我运行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的使用错误的编译器;这些说明是为Cygwin使用MinGw,但我从未在过程中指定过minigw。我也想知道PyAudio构建文件中是否有需要针对64位进行更改的内容。我对C编译,Cygwin或MinGW一无所知,而且对编程有一些新的认识。有任何想法吗?我可以提供的任何其他信息?

回答

10

当前的Cygwin gcc的版本不支持-mno-cygwin了,因为它从来没有真正工作正常。相反,您应该使用mingw64-i686-gcc软件包提供的正确交叉编译器,然后运行./configure --host=i686-w64-mingw32

+0

另一种选择,而不是从Cygwin环境交叉编译是使用原生Windows MinGW的安装(TDM或nuwen发行版都非常容易安装),并使用MinGW的的MSYS环境处理'/ configure'一步。我认为Pyaudio的配置步骤可以在MSYS中使用。 –

+0

非常感谢。这个答案解决了我发布的问题。后来在Cygwin环境中的'python setup.py build --static-link -cmingw32'步骤中遇到了其他问题。错误是'cc1.exe:错误:无法识别的命令行选项'-mno-cygwin',错误:命令'gcc'失败,退出状态为1'。在没有-cming32的情况下尝试时,错误更改为“无法找到vcvarsall.bat”。我最终在http://www.lfd.uci.edu/~gohlke/pythonlibs/找到了一个二进制文件,它允许我停止对此进行故障排除。 –

0

在某些情况下它是导致问题的杀毒软件。 我有avast,不得不禁用它。

相关问题