Wie kompiliere ich mod_wsgi, mod_fastcgi usw. auf Mountain Lion (Mavericks) durch Beheben von „apxs:Error: Command failed with rc=65536“?

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 hat ohne Probleme auf Lion kompiliert).

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

./configure erstellt 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 machen Sie einen Rückgabefehler:

$ 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

Antworten (2)

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

Aus irgendeinem Grund /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.8.xctoolchain/ist der 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 Bairs 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.

Es sollte hervorgehoben werden, dass dies ein Problem mit der apxs-Build-Konfiguration ist, die Apple meines Wissens bereitgestellt hat, und nichts mit mod_wsgi zu tun hat. Es kam vor der Veröffentlichung von Mountain Lion auf und jemand gab Apple irgendwie Feedback, aber Apple hat es nicht behoben. Es ist wahrscheinlich, dass dieses Problem jeden Versuch betrifft, Apache-Module mit apxs und nicht nur mit mod_wsgi zu erstellen.
Das von mir gemeldete Problem scheint mit make utilit zu tun zu haben. Aus irgendeinem Grund denkt es, 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.
Unter der Annahme des gleichen Dateispeicherorts wie bei älterem MacOS X wird das Problem in den Definitionen in /usr/share/httpd/build/config_vars.mk liegen, die von apxs verwendet werden.
Wie @GrahamDupleton vorschlägt, behebt diese Lösung auch make-Probleme mit mod_fastcgi v2.4.6.
Beachten Sie, dass dies auch für Mavericks funktioniert, aber es wäre so$ sudo ln -s /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/ /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.9.xctoolchain

Ich bin auf das gleiche 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. Siehe das Wesentliche für weitere Details.