1) 下载gd的各种依赖包。 但是不要下载gd本身,因为这是包含在php里的。

探索的时候也下载了 libvpx freetype,可惜最后的编译没过,就没有用上

2)编译各种(编译前记得把各种环境变量设上,这里我就直接用以前写好的cross-env.sh)

-- libvpx

xz -d libvpx-v1.3.0.tar.xz
tar -xvf libvpx-v1.3.0.tar
cd libvpx-v1.3.0
./configure --prefix=/h1root/usr/libvpx --target=armv7-linux-gcc
make && make install

-- tiff(后来没用上)

./configure --prefix=/h1root/usr/tiff --host=arm-linux 

-- libpng(花了非常多的时间调查,这两个环境变量不设的话,似乎永远找不到zlib)

export LDFLAGS="-L/h1root/usr/zlib128/lib"
export CPPFLAGS="-I /h1root/usr/zlib128/include"
./configure --prefix=/h1root/usr/libpng --host=arm-linux

-- freetype

./configure --prefix=/h1root/usr/freetype --host=arm-linux  --without-png

-- gd的单独编译应该不需要。不要下载gd


3) 编译php

千万要注意, --with-gd后不要跟任何东西。这样,就会利用php自带的gd source编译。

如果不这么做,最后连接时会产生错误。

ext/gd/gd.o: In function `zif_imageloadfont':
gd.c:(.text.zif_imageloadfont+0x1d0): undefined reference to `overflow2'
gd.c:(.text.zif_imageloadfont+0x1ec): undefined reference to `overflow2'
ext/gd/gd.o: In function `zif_imagecreatefromstring':
gd.c:(.text.zif_imagecreatefromstring+0x1b8): undefined reference to `gdGetC'
gd.c:(.text.zif_imagecreatefromstring+0x1bc): undefined reference to `gdGetC'
gd.c:(.text.zif_imagecreatefromstring+0x1c0): undefined reference to `getmbi'
gd.c:(.text.zif_imagecreatefromstring+0x1d0): undefined reference to `gdGetC'
gd.c:(.text.zif_imagecreatefromstring+0x1d4): undefined reference to `skipheader'
collect2: ld returned exit status
make[]: *** [sapi/cgi/php-cgi] Fehler
make[]: Leaving directory `/home/user/freetz/source/target-mips_gcc-4.6.4_uClibc-0.9.32.1/php-5.4.'
./configure --prefix=/h1root/usr/php --host=arm-linux --enable-libxml --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-zlib=/h1root/usr/zlib128 --without-iconv  --with-libxml-dir=/h1root/usr/libxml2 --without-pear --without-sqlite3 --with-gd --without-pdo_sqlite --with-jpeg-dir=/h1root/usr/jpeg --with-png-dir=/h1root/usr/libpng 

4) 把编译好的程序放到运行环境执行, php --version.

一般会告诉你缺 libpng.so , libjpeg.so , 把这些连接库也考过去就可以了。

5)写个phpinfo的php,在浏览器里执行之后,就会知道php.ini具体该放哪里。 php源程序里有示例php.ini,拿过去用就行。

为arm 编译包含gd的php5的更多相关文章

  1. php5.6.30环境报错Call to undefined function ImageCreate() 编译安装 gd库

    php5..30环境报错Call to undefined function ImageCreate() 编译安装 gd库 发现php5..30没有加载gd库 [root@cn_vs_web04:/u ...

  2. 烂泥:centos单独编译安装gd库

    本文由秀依林枫提供友情赞助,首发于烂泥行天下. 这几天一直在弄一个商城系统,该系统的源码及数据库都已经上传并创建完毕.但是在安装该系统时,却提示缺少gd库.如下: 使用php探针查看,发现php确实没 ...

  3. ARM编译空间属性(转)

    原文地址:http://www.cnblogs.com/hongzg1982/articles/2205093.html 1. 程序的空间属性 一般情况下,一个程序本质上都是由 bss段.data段. ...

  4. linux又一次编译安装gd,添加freetype支持,解决验证码不显示问题,Fatal error: Call to undefined function imagettftext()

    问题: Fatal error: Call to undefined function Think\imagettftext() in /var/www/webreg/ThinkPHP/Library ...

  5. 编译包含Google Play服务App的SDK版本问题

    编译包含Google Play服务App的SDK版本问题   错误信息:No Resouce identifier found for attribute 'touchscreen BlocksFoc ...

  6. 【CentOS】php编译安装gd库

    一.准备工作 使用之前服务器按源码最小化安装完nginx.php-fpm,没有安装gd库,下面介绍下gd库的安装. gd库是一个开源的图像处理库,它通过提供一系列用来处理图片的API,使其可以用来创建 ...

  7. 已安装php 编译安装 gd库拓展模块

    参考资料:http://wenku.baidu.com/link?url=EgXFShYxeJOZSYNQ_7RCBC-6X8OcRRCqVm4qCv49uBk57d6vLBoUpfYdQ-KqJRs ...

  8. linux编译php gd扩展

    1 安装gd的依赖包 yum -y install gd gd2 gd-devel gd2-devel zlib freetype 2 安装jpeg: wget http://www.ijg.org/ ...

  9. 自己编写的:centos6.6上编译安装apache2.4+php5.6+mysql5.6【亲自】

    在centos6.6上安装apache2.4+php5.6+mysql5.6 关于wget的安装 将之前装系统的.iso文件挂载到光驱 由于我在/home/jinnan/下建立了一个cdrom文件夹 ...

随机推荐

  1. Java(1-15)

    1.方法参数是引用类型,传递的是内存地址!2.方法的重载特性:在同一个类中,允许方法同名,只要方法的参数列表不同即可!3.Stirng特殊在如果静态数据区中存在,那么不创建新的对象,而是指向这个对象. ...

  2. printf("%d",5.01)和printf("%f",5)的输出结果

    printf(); printf("%d\n",5.01); printf(); printf(.f); 输出结果: 看到结果,会感觉非常奇怪.1处怎么会输出0呢?2又为何会显示这 ...

  3. STM32系统时钟为什么没有定义呢

    对于使用3.5版本库开发的STM32学习者 有时候不清楚为什么没有时钟定义 那么我们就简单的讲解下吧: 1,函数从启动文件开始运行(汇编文件) 2,若是hd.s 请看151行LDR     R0, = ...

  4. vs下C++内存泄露检测

    本文原链接: http://www.cnblogs.com/zouzf/p/4152279.html 参考文章: http://msdn.microsoft.com/zh-cn/library/x98 ...

  5. Python3基础 os listdir 列举指定的所有文件及文件夹的名字

             Python : 3.7.0          OS : Ubuntu 18.04.1 LTS         IDE : PyCharm 2018.2.4       Conda ...

  6. IntelliJ IDEA 设置代码提示或自动补全的快捷键(Alt+/)

    点击 文件菜单(File) –> 点击 设置(Settings… Ctrl+Alt+S), –> 打开设置对话框.在左侧的导航框中点击 KeyMap. 接着在右边的树型框中选择 Main ...

  7. Unity3D学习笔记(二十三):事件接口、虚拟摇杆、层级管理和背包系统

    事件接口 IDragHandler(常用):鼠标按下拖动时执行(只要鼠标在拖动就一直执行) IDropHandler:对象拖动结束时,如果鼠标在物体的范围内,执行一次(依赖于IDragHandler存 ...

  8. 【Android实验】组件通信Intent

    实验目的 [TOC] 了解使用Intent进行组件通信原理 掌握使用Intent启动Activity的方法 熟悉和掌握Android组件间通信的方式和技巧 实验要求 设计一个主Activity和一个子 ...

  9. 并发队列ConcurrentLinkedQueue、阻塞队列AraayBlockingQueue、阻塞队列LinkedBlockingQueue 区别和使用场景总结

      三者区别与联系: 联系,三者 都是线程安全的.区别,就是 并发  和 阻塞,前者为并发队列,因为采用cas算法,所以能够高并发的处理:后2者采用锁机制,所以是阻塞的.注意点就是前者由于采用cas算 ...

  10. ZOJ 1456 Minimum Transport Cost(floyd+后继路径记录)

    http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1456 题意:求最短路并且输出字典序最小的答案. 思路:如果用dijkstr ...