Я пытаюсь установить mod_auth_kerb, но не могу найти никакой информации о его компиляции в OS X. Когда я пытаюсь скомпилировать, я получаю следующее:
./apxs.sh "-I. -Ispnegokrb5 -I/include " "-dynamic -g -O2 -arch x86_64 -Wl,-search_paths_first -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err -lresolv -lresolv" "" "/Applications/XAMPP/xamppfiles/bin/apxs" "-c" "src/mod_auth_kerb.c"
/Applications/XAMPP/xamppfiles/build/libtool --silent --mode=compile gcc -prefer-pic -I/Applications/XAMPP/xamppfiles/include -L/Applications/XAMPP/xamppfiles/lib -mmacosx-version-min=10.4 -arch i386 -arch ppc -DDARWIN -DSIGPROCMASK_SETS_THREAD_MASK -no-cpp-precomp -I/Applications/XAMPP/xamppfiles/include -I/Applications/XAMPP/xamppfiles/include -I/Applications/XAMPP/xamppfiles/include -I/Applications/XAMPP/xamppfiles/include -I. -Ispnegokrb5 -I/include -c -o src/mod_auth_kerb.lo src/mod_auth_kerb.c && touch src/mod_auth_kerb.slo
src/mod_auth_kerb.c: In function ‘authenticate_user_krb5pwd’:
src/mod_auth_kerb.c:1030: warning: passing argument 8 of ‘verify_krb5_user’ discards qualifiers from pointer target type
src/mod_auth_kerb.c: In function ‘authenticate_user_krb5pwd’:
src/mod_auth_kerb.c:1030: warning: passing argument 8 of ‘verify_krb5_user’ discards qualifiers from pointer target type
/Applications/XAMPP/xamppfiles/build/libtool --silent --mode=link gcc -o src/mod_auth_kerb.la -dynamic -g -O2 -arch x86_64 -Wl,-search_paths_first -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err -lresolv -lresolv -rpath /Applications/XAMPP/xamppfiles/modules -module -avoid-version src/mod_auth_kerb.lo
ld: warning: in src/.libs/mod_auth_kerb.o, missing required architecture x86_64 in file
warning: no debug symbols in executable (-arch x86_64)
Я настраиваю так:
./configure --with-krb4=no CFLAGS='-g -O2 -arch x86_64'
Я должен упомянуть, что я использую XAMPP с пакетом разработки на этой машине.
Трудно быть на 100% уверенным без небольшого увеличения вывода, но велика вероятность, что некоторая зависимость недоступна в 64-битной архитектуре.
Самое простое решение, измените свои CFLAGS на: -g -O2 -arch i386
который скомпилирует его в 32-битном режиме.
Позвольте мне улучшить этот поспешный и несколько неверный ответ.
Эта проблема вызвана несоответствием компиляции кода. Часть кода компилируется для 64-битной версии, а часть - для 32-битной.
Недавно я столкнулся с этой проблемой с программой, которую создавал. Я установил для CFLAGS значение «-arch i386 -arch ppc», чтобы получить 32-битную универсальную версию, но я не стал устанавливать CPPLFAGS. К сожалению, часть программы была написана на C, а другая - на C ++. Итак, я получил ту же ошибку. Как только я установил CPPFLAGS так, чтобы все файлы были скомпилированы как 32-битные, ошибка была устранена.
Я вижу, что в вашем выводе у вас есть файлы с -arch i386 и некоторые с -arch x86_64. Это похоже на источник вашей проблемы.