deer2010 发表于 2015-12-23 14:07:09

apache编译错误

今天编译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 http://pcre.org/      //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
页: [1]
查看完整版本: apache编译错误