apxs на MacOSX возникли проблемы с архитектурой

0

Я пытаюсь настроить среду разработки на моем стареющем Macbook Pro, который соответствует моей рабочей среде Linux EC2. Теперь я нахожусь на домашнем участке, нужно только получить плагин mod_auth_mysql для работы apache. После нескольких часов поиска в Интернете и исправления и царапин на голове, я думаю, что я почти там, но я ударил то, что ничего, что я нашел в Интернете, не смог решить.

nathan@ichigo:/usr/local/mod_auth_mysql-2.9.0$ sudo apxs -c -L/usr/local/mysql/lib -I/usr/local/mysql/include/ -lmysqlclient -lm -lz mod_auth_mysql.c 
/usr/share/apr-1/build-1/libtool --silent --mode=compile gcc    -DDARWIN -DSIGPROCMASK_SETS_THREAD_MASK -I/usr/local/include -I/usr/include/apache2  -I/usr/include/apr-1   -I/usr/include/apr-1  -I/usr/local/mysql/include/  -c -o mod_auth_mysql.lo mod_auth_mysql.c && touch mod_auth_mysql.slo
/usr/share/apr-1/build-1/libtool --silent --mode=link gcc -o mod_auth_mysql.la  -L/usr/local/mysql/lib -lmysqlclient -lm -lz -rpath /usr/libexec/apache2 -module -avoid-version    mod_auth_mysql.lo
ld: warning: in /usr/local/mysql/lib/libmysqlclient.dylib, file is not of required architecture
ld: warning: in /usr/local/mysql/lib/libz.a, file is not of required architecture
warning: no debug symbols in executable (-arch x86_64)

Я думаю, что это жалуется, потому что он пытается построить для 64-битного, но я на 32-битной платформе? Я не совсем уверен. Я попытался заставить 32-битную сборку с env ARCHFLAGS и -D arch на apxs, но безрезультатно.

FWIW, я также попробовал mod_auth_mysql-3.0.0 и получил более или менее тот же результат.

Альтернативно, существует ли более современный способ auth против mysql в Apache? Я больше ничего не нашел, но этот модуль не получил никакой любви за хорошие 5 лет, и мне пришлось применить некоторые исправления, которые я нашел разбросанными по сети, даже чтобы зайти так далеко.

Теги:
macos

1 ответ

1
Лучший ответ

Во-первых, проверьте, какие архитектуры поддерживаются вашими библиотеками с помощью file /usr/local/mysql/lib/libmysqlclient.dylib и т.д. Как только вы это знаете, я думаю, что вы можете контролировать, для чего создаются apxs, добавив флаги, такие как -Wc,"-arch i386" -Wl,"-arch i386"

  • 1
    Большой! это приблизило меня на один шаг, теперь у меня есть одно предупреждение: «предупреждение: нет символов отладки в исполняемом файле (-arch i386)» и нет .so в каталоге сборки. Я также проверил в libexec / apache наличие mod_auth_mysql (не уверен, что apxs должен автоматически выгружать его), и никаких кубиков.
  • 2
    Хорошо, добавление -g к флагам компилятора удалило предупреждение, но не сгенерировало .so. Еще раз прочитал справочную страницу apxs и обнаружил, что команда, которую я там выполняю, - это еще не все, вам нужно запустить apxs -i -a mod_name.la, чтобы закончить. Итак, с этим все работает. Спасибо!
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню