2013-06-20 9 views
6

Ich versuche Pyaudio (ein Python-Modul) aus der Quelle zu kompilieren, da ich Windows verwende und nur 32-Bit-Binärdateien verfügbar sind - ich brauche 64. Nach these instructions Ich habe Cygwin heruntergeladen und jede Komponente installiert, um sicher zu sein. Die Installation von Portaudio, einem anderen Modul, wird zuerst benötigt.C-Compiler kann keine ausführbaren Dateien erstellen - Cygwin/MiniGW

Wenn ich CFLAGS="-mno-cygwin" LDFLAGS="-mno-cygwin" ./configure laufen lasse, erhalte ich die Fehler configure: error: C compiler cannot create executables. See 'config.log' for more details. config.log eine zusätzliche Zeile unterhalb dieser Meldung hat: gcc: The -mno-cygwin flag has been removed; use a mingw-targeted cross-compiler.

Dies führt mich zu glauben, dass vielleicht Cygwin den falschen Compiler verwendet; Die Anweisungen beziehen sich auf die Verwendung von MinGw mit Cygwin, aber ich habe nie minigw spezifiziert. Ich frage mich auch, ob es etwas in den PyAudio Build-Dateien gibt, die für 64-Bit geändert werden müssen. Ich weiß nichts über C, Compiling, Cygwin oder MinGW und bin neu im Programmieren. Irgendwelche Ideen? Irgendwelche anderen Informationen, die ich zur Verfügung stellen kann?

Antwort

10

Aktuelle Versionen von Cygwin gcc unterstützen -mno-cygwin nicht mehr, weil es nie richtig funktioniert hat. Stattdessen sollten Sie einen geeigneten Cross-Compiler verwenden, der von den Paketen mingw64-i686-gcc bereitgestellt wird, und dann ./configure --host=i686-w64-mingw32 ausführen.

+0

Eine andere Option anstelle der Cross-Compilierung aus der Cygwin-Umgebung ist die Verwendung einer nativen Windows-MinGW-Installation (TDM oder Nuwen-Distributionen sind sehr einfach zu installieren) und die MSYS-Umgebung von MinGW für den Schritt "./Configure". Ich nehme an, dass Pyaudos Konfigurationsschritt in MSYS funktionieren würde. –

+0

Vielen Dank. Diese Antwort löste das Problem, das ich gepostet habe. Ich stieß später im 'python setup.py build --static-link -cmingw32' Schritt außerhalb der Cygwin-Umgebung auf andere Probleme. Der Fehler war 'cc1.exe: Fehler: nicht erkannte Befehlszeilenoption' -mno-cygwin ', Fehler: Befehl' gcc 'fehlgeschlagen mit Exit-Status 1'. Beim Versuch, ohne -cming32 auszuprobieren, änderte sich der Fehler in "Unable to find vcvarsall.bat". Ich fand schließlich eine Binärdatei unter http://www.lfd.uci.edu/~gohlke/pythonlibs/, mit der ich die Fehlersuche beenden konnte. –

0

In einigen Fällen ist es ein Antivirenprogramm, das Probleme verursacht. Ich hatte Avast und musste es deaktivieren.

Verwandte Themen