Ошибка при компиляции apache, «Неопределенные символы: Неопределенные символы:« _ apr_dir_read $ INODE64 »...... ld: символы не найдены» - PullRequest
1 голос
/ 03 ноября 2010

Я пытаюсь скомпилировать Apache. Я загрузил последнюю версию исходного кода (2.2.17). Вот что я делаю:

> sudo ./configure --prefix=/usr/local/apache2 --with-included-apr --enable-mods-shared=all --enable-module=so

> sudo make

и при этом я получаю:

/Users/Niklas/Development/apache/httpd-2.2.17/srclib/apr/libtool --silent --mode=link gcc -g -O2        -o httpd  modules.lo buildmark.o -export-dynamic server/libmain.la modules/http/libmod_http.la modules/mappers/libmod_so.la server/mpm/prefork/libprefork.la os/unix/libos.la  /Users/Niklas/Development/apache/httpd-2.2.17/srclib/pcre/libpcre.la /Users/Niklas/Development/apache/httpd-2.2.17/srclib/apr-util/libaprutil-1.la -lexpat -liconv /Users/Niklas/Development/apache/httpd-2.2.17/srclib/apr/libapr-1.la -lpthread
Undefined symbols:
  "_apr_dir_read$INODE64", referenced from:
      _process_resource_config_nofnmatch in libmain.a(config.o)
      _ap_process_resource_config in libmain.a(config.o)
  "_apr_file_info_get$INODE64", referenced from:
      _ap_pcfg_openfile in libmain.a(util.o)
  "_apr_dir_open$INODE64", referenced from:
      _process_resource_config_nofnmatch in libmain.a(config.o)
      _ap_process_resource_config in libmain.a(config.o)
  "_apr_stat$INODE64", referenced from:
      _ap_process_resource_config in libmain.a(config.o)
      _ap_mpm_set_coredumpdir in libmain.a(mpm_common.o)
      _ap_is_directory in libmain.a(util.o)
      _ap_is_rdirectory in libmain.a(util.o)
      _ap_log_pid in libmain.a(log.o)
      _unixd_pre_config in libos.a(unixd.o)
      _resolve_symlink in libmain.a(request.o)
      _resolve_symlink in libmain.a(request.o)
      _resolve_symlink in libmain.a(request.o)
      _ap_directory_walk in libmain.a(request.o)
      _ap_directory_walk in libmain.a(request.o)
      _ap_directory_walk in libmain.a(request.o)
      _ap_sub_req_lookup_dirent in libmain.a(request.o)
      _ap_sub_req_lookup_dirent in libmain.a(request.o)
      _ap_sub_req_lookup_file in libmain.a(request.o)
      _ap_sub_req_lookup_file in libmain.a(request.o)
ld: symbol(s) not found
collect2: ld returned 1 exit status
make[1]: *** [httpd] Error 1
make: *** [all-recursive] Error 1

Что я делаю не так?

Я использую OSX, но думаю, это не имеет значения?

Я боролся с этим в течение нескольких дней, поэтому я надеюсь, что кто-то может указать мне в правильном направлении?

Спасибо, в Advnace!

С уважением, Никлас

Ответы [ 2 ]

1 голос
/ 23 июля 2012

У меня была похожая проблема при сборке httpd 2.4.2 на Mac OS X, сначала загрузите отсюда последнюю версию APR http://apr.apache.org/, затем скомпилируйте и установите ее где-нибудь, а затем перенастройте httpd следующим образом

./configure --with-apr=/Users/youruser/where/you/installed/apr
1 голос
/ 03 ноября 2010

Вы пытаетесь собрать на OSX? У вас установлены инструменты разработки?

Ваша компиляция определенно не удалась, поэтому она не работает. Возможно, вам лучше поискать скомпилированные пакеты, чтобы делать то, что вам нужно. По крайней мере, вам лучше поискать руководства по сборке Apache на OSX.

В Apache также есть способ компилировать инсталляцию только тех модулей, которые вы пытаетесь добавить, используя утилиту под названием apxs2. В OSX уже должен быть установлен Apache, и я не могу представить, что они не включили бы это в своей сборке.

Конечно, я не знаю точно, но хорошее место для начала - Google install mod_dbd on OSX

Надеюсь, это поможет!

...