设置交叉编译路径

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 */

...

}

另在该文件中添加:

#define ARM 1

3、php 的依赖 libxml2

sudo wget ftp://xmlsoft.org/libxml2/libxml2-git-snapshot.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++ LD=/usr/local/arm_linux_4.3/usr/bin/arm-linux-uclibcgnueabi-ld ./configure --prefix=/usr/local/libxml2 --host=arm-linux --with-zlib=/usr/local/zlib --without-python

sudo make

sudo make install

#将configure文件中的RM"RM "RM"cfgfile"这行代码注释掉就可以了

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/apr --host=arm-linux ac_cv_file__dev_zero=yes ac_cv_func_setpgrp_void=yes apr_cv_process_shared_works=yes apr_cv_mutex_robust_shared=yes apr_cv_tcp_nodelay_with_cork=yes ap_void_ptr_lt_long=no ac_cv_sizeof_struct_iovec=8

sudo make

sudo make install

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/apr-util --host=arm-linux --with-apr=/usr/local/apr

sudo make

sudo make install

6、apache 的依赖 pcre

sudo ./configure --prefix=/usr/local/build-source/pce

sudo wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.43.tar.gz

sudo tar -xvf pcre-8.43.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/pcre --host=arm-linux

本机编译

./configure --with-included-apr --with-included-apr-util --with-pcre=/usr/local/build-source/pce

在执行过./configure指令后,在为开发板编译httpd执行make命令前,需要先对宿主机上编译过一次httpd(即至少执行到make,make install可不执行,宿主机上不最终安装apache2也是可以的),然后到为开发板编译httpd的httpd-2.4.3目录下的server目录中,修改一下其中的Makefile文件,找到如下行:

./gen_test_char > test_char.h 修改为 /usr/local/httpd-2.4.39-pc/server/gen_test_char > test_char.h

sudo CC_FOR_BUILD=/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++ LD=/usr/local/arm_linux_4.3/usr/bin/arm-linux-uclibcgnueabi-ld LDFLAGS=-lpthread ./configure --prefix=/usr/local/apache --host=arm-linux --with-pcre=/usr/local/pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util ap_cv_void_ptr_lt_long=no

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++ LD=/usr/local/arm_linux_4.3/usr/bin/arm-linux-uclibcgnueabi-ld ./configure --prefix=/usr/local/php --host=arm-linux --disable-ipv6 --disable-cli --disable-cgi --disable-all --enable-sockets --with-libxml-dir=/usr/local/libxml2 --with-zlib-dir=/usr/local/zlib --with-iconv-dir=/usr/local/libiconv --with-apxs2=/usr/local/apache/bin/apxs

低版本

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

http://archive.apache.org/dist/httpd/httpd-2.2.21.tar.gz

编译PC版本apache

./configure --prefix=/usr/local/build-source/httpd-2.2.21-pc ap_cv_void_ptr_lt_long=no

编译apache 参考https://www.cnblogs.com/tanghuimin0713/p/3749817.html

修改/usr/local/build-source/httpd-2.2.21/server/Makefile.in

./gen_test_char > test_char.h 为 /usr/local/build-source/httpd-2.2.21-pc/server/gen_test_char > test_char.h

configure错误

vi srclib/apr/configure

注释

# { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5

#$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}

#as_fn_error $? "cannot run test program while cross compiling

#See \`config.log' for more details" "$LINENO" 5; }

#else

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++ LD=/usr/local/arm_linux_4.3/usr/bin/arm-linux-uclibcgnueabi-ld ./configure --prefix=/usr/local/apache --host=arm-linux --disable-cgi --enable-rewrite --enable-so --enable-modules=all --enable-mods-shared=all --with-z=/usr/local/zlib ac_cv_file__dev_zero=yes ac_cv_func_setpgrp_void=yes apr_cv_tcp_nodelay_with_cork=yes ac_cv_sizeof_struct_iovec=8 ap_cv_void_ptr_lt_long=no ac_cv_struct_rlimit=yes LDFLAGS=-lpthread

httpd 2.xx可能出现的make错误

Makefile:141: recipe for target ‘include/private/apr_escape_test_char.h’ failed

cd srclib/apr/include/private

sudo cp /usr/local/build-source/httpd-2.2.21-pc/srclib/apr/include/private/apr_escape_test_char.h .

注释/usr/local/build-source/httpd-2.2.21/srclib/apr/Makefile

#include/private/apr_escape_test_char.h: tools/gen_test_char

# $(APR_MKDIR) include/private

# tools/gen_test_char > $@

Makefile:23: recipe for target ‘/usr/local/build-source/httpd-2.2.21/srclib/pcre/chartables.c’ failed

cd srclib/pcre/

sudo gcc -Wall -O2 -DCROSS_COMPILE dftables.c -s -o dftables

libxml2

ftp://xmlsoft.org/libxml2/libxml2-git-snapshot.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++ LD=/usr/local/arm_linux_4.3/usr/bin/arm-linux-uclibcgnueabi-ld ./configure --prefix=/usr/local/libxml2 --host=arm-linux --with-zlib=/usr/local/zlib --without-python

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++ LD=/usr/local/arm_linux_4.3/usr/bin/arm-linux-uclibcgnueabi-ld ./configure --prefix=/usr/local/php --host=arm-linux --disable-ipv6 --disable-cli --disable-cgi --disable-all --enable-sockets --with-libxml-dir=/usr/local/libxml2 --with-zlib-dir=/usr/local/zlib --with-iconv-dir=/usr/local/libiconv --with-apxs2=/usr/local/apache/bin/apxs --cache-file=arm-linux.cache

标签:bin,4.3,usr,linux,apache,php,local,arm

来源: https://blog.csdn.net/luckywur/article/details/89397535

apache arm 交叉编译_arm apache php交叉编译相关推荐

  1. OpenCV基于ARM的Linux系统的交叉编译

    OpenCV基于ARM的Linux系统的交叉编译 基于ARM的Linux系统的交叉编译 先决条件 获取OpenCV源代码 获取最新的稳定OpenCV版本 从Git存储库中获取最新的OpenCV 构建O ...

  2. linux top交叉编译_ARM Linux交叉编译工具链的制作

    本次是在VMWare虚拟机里安装了CentOS5.2操作系统,并在上面编译自己的ARM交叉编译工具链,下面是相应的步骤: 首先下载crosstool0.43源码包(crosstool-0.43.tar ...

  3. CGO arm 树莓pi下的交叉编译

    转载 CGO arm 树莓pi下的交叉编译 https://medium.com/@chrischdi/cross-compiling-go-for-raspberry-pi-dc09892dc745 ...

  4. 什么是交叉编译?个人对交叉编译的理解

    2019独角兽企业重金招聘Python工程师标准>>> 什么是交叉编译?个人对交叉编译的理解 关键词:交叉编译 [一句话概括]:将源代码在A平台使用[某种编译器]去编译,使得生成的二 ...

  5. 【交叉编译】什么是交叉编译,为何要有交叉编译?

    一.交叉编译简介 1.什么是交叉编译 1.1 本地编译 解释什么是交叉编译之前,先要明白一个概念:本地编译 我们之前常见的软件开发,都是属于本地编译:在当前的PC下,x86的CPU下,直接编译出来程序 ...

  6. Apache软件基金会宣布Apache Unom成为顶级项目

    导读:2019年3月21日,Apache软件基金会(ASF)宣布,Apache®Unomi™成为顶级项目(TLP).Apache Unomi是一个标准的客户数据平台(CDP),它管理在线客户.线索和访 ...

  7. linux apache 负载均衡,使用Apache作为前端负载均衡器

    在某些场景中,我们需要在前端放置一个Apache作为负载均衡器,后台有若干台Apusic或者其它的类似于Tomcat/WebLogic等应用服务器,客户端发送到Apache的请求,将被分配到后台的这些 ...

  8. 禁止apache显示目录索引 apache禁止列目录

    2019独角兽企业重金招聘Python工程师标准>>> 禁止apache显示目录索引 apache禁止列目录 禁止Apache显示目录索引的常见的3种方法. 要实现禁止Apache显 ...

  9. 官宣了!Apache ECharts 毕业成为 Apache 软件基金会顶级项目!

    2021 年 1 月 26 日,德克萨斯州威明顿市 Apache 软件基金会(ASF)是 350 多个开源项目和计划的全志愿开发者.管理者和孵化者,今天宣布 Apache® ECharts™成为顶级项 ...

最新文章

  1. DivCSS网页布局中CSS无效的十个常见原因
  2. 从「林」开始: imx51-linux-rt3070ap-dhcpd
  3. java如何计算html高度,如何检索HTML元素的实际宽度和高度?
  4. R学习笔记:文档间函数调用
  5. 超声的pacs系统和dicom服务器,PACS系统和DICOM标准.ppt
  6. python精彩编程200例-Python趣味编程与精彩实例
  7. Layui 数据表格:用户个性化定制列(拖拽,隐藏)
  8. 使用Animation编辑器编辑动画
  9. 关于videoplayer
  10. matlab热应力计算,Matlab在齿轮应力计算中的应用
  11. 绝对靠谱安全的论文免费安全查重检测重复率网站
  12. win10系统下mysql5.7初始化失败怎么办?
  13. 关于JFrame添加背景图片,setbounds的小知识
  14. 如何将OGV格式的视频转换成MP4格式
  15. ISCC 2019 逆向rev02
  16. 看 PrisonBreak,学美语
  17. html版电子表,秒表,倒计时
  18. 【P4论文分享】基于P4的可编程数据平面研究及其应用
  19. [PyTorch]——DataLoader Num_workers
  20. 如何创建内容安全策略(CSP 标头)

热门文章

  1. stateflow新建状态中的枚举类型
  2. 使用循环链表解决约瑟夫环问题
  3. 微博3元一万粉软件_实测3款朋友圈很火的“日赚分红300元”游戏软件究竟靠不靠谱!!...
  4. ARM 之六 Cortex-M 内核中断/异常系统、中断优先级/嵌套 详解
  5. C/S和B/S两种模式
  6. Tinux 3.0 内存对齐算法
  7. 启明去端分享| ESP32-S3如何实现tcp_client和tcp_server9-07
  8. COG、XR、X5R、Y5V电容器分类
  9. 百度ERNIE新突破,登顶中文医疗信息处理权威榜单CBLUE冠军
  10. qthread run结束了算销毁吗_拼多多,一面,i++ 是线程安全的吗?一脸蒙逼!