编译apache时出错,“未定义符号:未定义符号:”_ apr_dir_read $ INODE64“...... ld:符号未找到”
我想编译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!
问候, 尼克拉斯
你试图建立在OSX?你是否安装了开发工具?
您的编译绝对失败,这就是为什么它不工作。你可能会更适合寻找预编译包来做你需要做的事情。至少你会更好地寻找在OSX上构建apache的指南。
Apache也有一种编译方式,只需使用名为apxs2
的实用程序来安装您要添加的模块。 OSX应该已经安装了Apache,我无法想象他们不会在他们的构建中启用它。
就算我不能肯定,但一个良好的开端将是谷歌install mod_dbd on OSX
希望帮助你!
好吧,这有点奇怪,但是“MySQL驱动程序”不能与Apache2一起编译。我相信我阅读了一些关于许可问题的内容,但不确定。因此,这就是为什么它在httpd.config中抱怨DBRiver = mysql。我认为mod_dbd已正确安装,它是我没有正确包含的mysql驱动程序,我更新了我的问题以反映这一点。不知道apxs2,会检查出来(但没有发现指示它的指示...)。如何验证开发工具是否已安装?我对这些活动大部分都是新手...... – Nicsoft 2010-11-02 21:22:42
好的,好像我的问题是在编译或使用mod_dbd模块的时候开始的。我已经更新了我的问题以反映这一点。 – Nicsoft 2010-11-03 20:24:03
我,而在Mac OS X的httpd建设2.4.2,首先从这里http://apr.apache.org/下载最新的APR然后编译并安装的地方,然后重新配置的httpd这样
./configure --with-apr=/Users/youruser/where/you/installed/apr
我解决它有一个类似的问题。我再次下载了源代码,并重新做了一遍。在尝试解决问题时,我一定已经摧毁了一些东西,但是现在正在编译的全新安装。 – Nicsoft 2010-11-03 20:46:32
重新下载为我工作 - 奇怪! – Jonathan 2012-01-23 17:29:07