今天编译apache时遇到了很多错误,而且有个错误搜遍了google也没有找到答案。下面对这些错误做个汇总。
一,配置错误
configure: error: APR not found //apr没有安装,安装apr请参考前一篇日志
configure: error: APR-UNTIL not found //apr-until 没有安装,请参考前一篇日志
configure: error: pcre-config for libpcre not found. PCRE is required and available from //pcre没有安装,请自行安装
二.编译错误
exports.c:1572: error: redefinition of `ap_hack_apr_allocator_create'
exports.c:177: error: `ap_hack_apr_allocator_create' previously defined here
这个问题是个世界性的难题,在个各国的论坛上都有搜到,但是至今没有找到一个解决办法。
打开server/exports.c,查看源代码发现,在1572和177确实有两个同样的宏,而且这两个宏的开关是相同的条件,就是说无论怎么编译,这份代码是不可能编译通过的!!!!
再看这两个宏上面的注释,一个是来自/usr/local/apr/include/,另外一个是来自/usr/local/apr-until/,
这时重新解压httpd的源代码,发现并没有这个源文件,于是自然就想到是configure的时候生成的这份源代码。
查看之前调用的configure命令,发现同时指定了apr和apr-until,所以最终生成了这个有问题的exports.c
(原命令:./configure --prefix=/usr/local/apache --enable-so --enable-proxy --enable-proxy-http --enable-proxy-balancer --enable-modules=all --enable-mods-shared=all --with-apr=/usr/local/apr --with-pcre=/usr/local/pcre
--with-apr-util=/usr/local/apr-util/)
解决办法,configure httpd时不要with apr和apr-until,只with pcre就足够了
正确configure命令如下:
./configure --prefix=/usr/local/apache --enable-so --enable-proxy --enable-proxy-http --enable-proxy-balancer --enable-modules=all --enable-mods-shared=all --with-pcre=/usr/local/pcre
阅读(975) | 评论(0) | 转发(0) |