Chinaunix首页 | 论坛 | 博客
  • 博客访问: 486723
  • 博文数量: 53
  • 博客积分: 492
  • 博客等级: 下士
  • 技术积分: 866
  • 用 户 组: 普通用户
  • 注册时间: 2011-11-14 15:12
文章分类

全部博文(53)

文章存档

2016年(1)

2015年(3)

2014年(17)

2013年(9)

2012年(7)

2011年(16)

我的朋友

分类: LINUX

2013-06-11 16:17:38

  今天编译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
    
    
阅读(6858) | 评论(0) | 转发(2) |
给主人留下些什么吧!~~