Как скомпилировать mod_wsgi, mod_fastcgi и т. Д. В Mountain Lion (Mavericks), исправив `apxs: Ошибка: Команда завершилась неудачно с rc = 65536`?


22

Я обновился до OS X Mountain Lion. Обновление удалило все мои модули Python и Apache, включая mod_wsgi.

Сейчас я пытаюсь перекомпилировать mod_wsgi (он скомпилирован без проблем на Lion).

Я использую исходный код здесь: http://code.google.com/p/modwsgi/wiki/DownloadTheSoftware?tm=2

./configure создает Makefile без проблем:

$ ./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

Но make возвращает ошибку:

$ 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

Ответы:


32

Я решил эту проблему при написании вопроса:

По какой-то причине /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.8.xctoolchain/папка (содержащая инструменты командной строки Xcode) находится здесь:/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain

Решить проблему:

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

Предложение Грега Бэра для Маверикс:

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

Это создает символическую ссылку на нужную папку.


4
Следует подчеркнуть, что это проблема с конфигурацией сборки apxs, которую Apple предоставила, насколько я знаю, и не имеет ничего общего с mod_wsgi. Это произошло до того, как выпустили Mountain Lion, и кто-то как-то предоставил отзыв Apple, но Apple не исправила это. Вполне вероятно, что эта проблема затронет любую попытку сборки модулей Apache с использованием apxs, а не только mod_wsgi.
Грэм Дамплтон

Проблема, которую я поставил, кажется, связана с утилитой. Почему-то думает, что компилятор (gcc) находится в другой папке. Это просто исправить, создав символическую ссылку (подробности см. В моем ответе). sudo make install после этого тоже работает.
Даниил Рыжков

Предполагая, что файл находится в том же месте, что и в старых MacOS X, проблема будет в определениях в /usr/share/httpd/build/config_vars.mk, которые использует apxs.
Грэм Дамплтон

Как предлагает @GrahamDumpleton, это решение также исправляет проблемы с mod_fastcgi v2.4.6.
Грэм Милн

3
Обратите внимание, что это также работает для Маверикс, но это будет $ sudo ln -s /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/ /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.9.xctoolchain
Грег Бэйр

2

Столкнулся с той же проблемой, однако создание символической ссылки не решило ее для меня. Что сработало, так это добавление флага --disable-frameworkв ./configureкоманду. Смотрите суть для более подробной информации.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.