1

私は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を使用していますが、それは問題ではないと思いますか?

私はこれに数日間苦労しているので、誰かが私を正しい方向に向けてくれることを願っていますか?

よろしくお願いします!

よろしく、 ニクラス

4

2 に答える 2

1

OSXでビルドしようとしていますか?開発ツールはインストールされていますか?

あなたのコンパイルは間違いなく失敗しました、それがそれが機能しない理由です。必要なことを実行するには、コンパイル済みのパッケージを探す方がよいでしょう。少なくとも、OSXでapacheを構築するためのガイドを探す方がよいでしょう。

Apacheには、と呼ばれるユーティリティを使用して、追加しようとしているモジュールだけをコンパイルインストールする方法もありますapxs2。OSXにはすでにApacheがインストールされているはずですが、ビルドでそれを有効にしなかったとは思えません。

確かにわかりませんが、開始するのに適した場所はGoogleです。install mod_dbd on OSX

お役に立てば幸いです。

于 2010-11-02T21:11:15.783 に答える
1

Mac OS X で httpd 2.4.2 をビルドしているときに同様の問題が発生しました。最初にhttp://apr.apache.org/から最新の APR をダウンロードし、コンパイルしてどこかにインストールし、次のように httpd を再構成します。

./configure --with-apr=/Users/youruser/where/you/installed/apr
于 2012-07-23T04:16:39.337 に答える