apache arm 交叉编译_arm apache php交叉编译

本文详细介绍了如何在ARM环境下交叉编译Apache和PHP,包括设置交叉编译路径、编译zlib、iconv、libxml2等依赖库,并解决编译过程中的问题,如修改源码以适应ARM架构。
摘要由CSDN通过智能技术生成

设置交叉编译路径

CC=/usr/local/arm_linux_4.3/usr/bin/arm-linux-gcc

CXX=/usr/local/arm_linux_4.3/usr/bin/arm-linux-g++

1、zlib http://www.zlib.net/zlib-1.2.11.tar.gz

sudo CC=/usr/local/arm_linux_4.3/usr/bin/arm-linux-uclibcgnueabi-gcc ./configure --prefix=/usr/local/zlib

2、php 的依赖 iconv

sudo wget https://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.15.tar.gz

sudo CC=/usr/local/arm_linux_4.3/usr/bin/arm-linux-uclibcgnueabi-gcc CXX=/usr/local/arm_linux_4.3/usr/bin/arm-linux-uclibcgnueabi-g++ ./configure --prefix=/usr/local/libiconv --host=arm-linux

则需要对./srclib/getprogname.c做如下修改:

将原来的:

getprogname (void)

{

# if HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME /* glibc, BeOS */

...

}

改为:

getprogname (void)

{

# if ARM

char strProcessPath[1024] = {0};

if(readlink("/proc/self/exe", strProcessPath,1024) <=0)

{

return NULL;

}

char *strProcessName = strrchr(strProcessPath, '/');

if(strProcessName)

{

size_t nameLen = strlen(strProcessName);

char* namecopy = malloc(nameLen + 1);

if (namecopy)

{

namecopy[nameLen] = 0;

return memcpy(namecopy, strProcessName, nameLen);

}

}

return NULL;

# elif HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME /* glibc, BeOS */

...

}

另在该文件中添加:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值