Як компілювати 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
/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

Пропозиція Грега Бера для Mavericks:

$ 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
Зауважте, що це також працює для Mavericks, але це було б $ 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.