Wie kompiliert man mod_wsgi, mod_fastcgi, etc auf Mountain Lion (Mavericks), indem man `apxs: Error: Befehl mit rc = 65536` fehlschlägt?

22

Ich habe auf OS X Mountain Lion aktualisiert. Das Update hat alle meine Python- und Apache-Module einschließlich mod_wsgi entfernt.

Jetzt versuche ich, mod_wsgi neu zu kompilieren (es wurde ohne Probleme auf Lion kompiliert).

Ich verwende Quellcode von hier: http://code.google.com/p/modwsgi/wiki/DownloadTheSoftware?tm=2

./configure erstellt ein Makefile ohne Probleme:

$ ./configure
checking for apxs2... no
checking for apxs... /usr/sbin/apxs
checking Apache version... 2.2.22
checking for python... /usr/bin/python
configure: creating ./config.status
config.status: creating Makefile

Aber Rückgabefehler machen:

$ make
/usr/sbin/apxs -c -I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -DENABLE_DTRACE -DMACOSX -DNDEBUG -DNDEBUG -DENABLE_DTRACE  -Wc,'-arch x86_64' mod_wsgi.c -Wl,-F/System/Library/Frameworks -framework Python -u _PyMac_Error /System/Library/Frameworks/  -arch x86_64 -ldl  -framework CoreFoundation  
/usr/share/apr-1/build-1/libtool --silent --mode=compile /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.8.xctoolchain/usr/bin/cc    -DDARWIN -DSIGPROCMASK_SETS_THREAD_MASK -I/usr/local/include -I/usr/include/apache2  -I/usr/include/apr-1   -I/usr/include/apr-1  -arch x86_64 -I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -DENABLE_DTRACE -DMACOSX -DNDEBUG -DNDEBUG -DENABLE_DTRACE  -c -o mod_wsgi.lo mod_wsgi.c && touch mod_wsgi.slo
env: /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.8.xctoolchain/usr/bin/cc: No such file or directory
apxs:Error: Command failed with rc=65536
.
make: *** [mod_wsgi.la] Error 1
Daniil Ryzhkov
quelle

Antworten:

32

Ich habe dieses Problem beim Verfassen der Frage gelöst:

Aus irgendeinem Grund befindet sich der /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.8.xctoolchain/Ordner (der Xcode Command Line Tools enthält) hier:/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain

Um das Problem zu lösen:

$ sudo ln -s /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/ /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.8.xctoolchain

Greg Bair Vorschlag für Mavericks:

$ sudo ln -s /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/ /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.9.xctoolchain

Dadurch wird ein Symlink zum richtigen Ordner erstellt.

Daniil Ryzhkov
quelle
4
Hervorzuheben ist, dass dies ein Problem mit der von Apple bereitgestellten apxs-Build-Konfiguration ist und nichts mit mod_wsgi zu tun hat. Es kam vor der Veröffentlichung von Mountain Lion und jemand gab Apple irgendwie Feedback, aber Apple hat es nicht repariert. Es ist wahrscheinlich, dass sich dieses Problem auf jeden Versuch auswirkt, Apache-Module mit apxs und nicht nur mit mod_wsgi zu erstellen.
Graham Dumpleton
Das Problem, das ich eingereicht habe, scheint mit der Nutzung verbunden zu sein. Aus irgendeinem Grund wird angenommen, dass sich der Compiler (gcc) in einem anderen Ordner befindet. Es kann einfach durch Erstellen eines Symlinks behoben werden (siehe meine Antwort für Details). sudo make install danach funktioniert auch.
Daniil Ryzhkov
Vorausgesetzt, der Speicherort ist derselbe wie bei älteren MacOS X-Versionen, liegt das Problem in den Definitionen in /usr/share/httpd/build/config_vars.mk, die von apxs verwendet werden.
Graham Dumpleton
Wie @ Abraham Dumpleton vorschlägt, behebt diese Lösung auch Probleme mit mod_fastcgi v2.4.6.
Graham Miln
3
Beachten Sie, dass dies auch für Mavericks funktioniert, aber es wäre $ sudo ln -s /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/ /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.9.xctoolchain
Greg Bair
2

Bin auf dasselbe Problem gestoßen, aber das Erstellen des Symlinks hat es für mich nicht gelöst. Was funktionierte, war das Hinzufügen des Flags --disable-frameworkzum ./configureBefehl. Weitere Einzelheiten finden Sie in der Übersicht .

talonsensei
quelle