在x86为arm 编译 httpd 2.2.31

这个版本的httpd 已经自带 apr apr-util pcre , 不用额外下载源代码

1) 编写环境变量脚本,并执行

cross-env.sh :

export ARMROOTFS=/h1root
export CPP="/usr/bin/arm-linux-gnueabi-cpp-4.4"
export CC="/usr/bin/arm-linux-gnueabi-gcc-4.4"
export CXX="/usr/bin/arm-linux-gnueabi-g++-4.4"
export LD="/usr/bin/arm-linux-gnueabi-ld"
export AR="/usr/bin/arm-linux-gnueabi-ar"
export AS="/usr/bin/arm-linux-gnueabi-as"
export RANLIB="/usr/bin/arm-linux-gnueabi-ranlib"

2) 修改configure

进入./srclib/apr目录,修改configure文件,搜索cannot run test program while cross compiling

 

3) 执行configure(这些参数都是别人的汗水换来的,请珍惜!)

./configure --prefix=$ARMROOTFS/usr/apache --host=arm-linux  --with-included-apr ac_cv_file__dev_zero=yes ac_cv_func_setpgrp_void=yes apr_cv_tcp_nodelay_with_cork=yes ap_cv_void_ptr_lt_long=no ac_cv_struct_rlimit=yes

4)由于交叉编译出来的工具不能在host机运行, 所以make 失败之后,需要编译几个本地工具

cd ./srclib/apr/tools/
gcc -Wall -O2 -DCROSS_COMPILE gen_test_char.c -s -o gen_test_char
./gen_test_char > ../include/private/apr_escape_test_char.h
./srclib/pcre/
gcc -Wall -O2 -DCROSS_COMPILE dftables.c -s -o dftables
cd ./server
gcc -Wall -O2 -DCROSS_COMPILE gen_test_char.c -s -o gen_test_char

5) 还需要改几个文件

修改./srclib/apr/下的Makefile文件,注释掉图示两行

 

修改./srclib/apr/include/apr_want.h,注释掉struct iovec的定义

 

非常好的参考资料:

http://www.cnblogs.com/tanghuimin0713/p/3749817.html

http://www.cnblogs.com/zhangsf/p/3272960.html

http://www.programering.com/a/MDNwYjNwATk.html

转载于:https://www.cnblogs.com/johnsonshu/p/4756324.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值