静态编译php,php扩展库加入及交叉编译

php是一门强大的语言,在这里我就不多做介绍了,其实关于在php源码中加入扩展库并且实现静态编译的方法在 php官网 中已有介绍,但是还是有一些细节需要我们注意的,下面以libevent为例具体看一下在php中加入扩展库并实现静态交叉编译的过程。

关于php的静态交叉编译推荐看eechen的一篇博文 “64位Ubuntu 14.04上使用musleabi最小化交叉编译Android版PHP7”,里面有一个详细的配置文档,经过实践在i386和i86_64的pc上都能成功编译。

编译php扩展库需要两个文件:扩展库源程序和源码,我用的是libevent-release-1.4.15-stable.tar.gz,首先根据类似php中一些其他库相关配置对其进行编译:

cd /opt/phpdroid/src/libevent-release-1.4.15-stable

./autogen.sh

CFLAGS="--sysroot=$SYSROOT_MUSL -Os" \

./configure \

--prefix="/opt/phpdroid/deps" \

--host=$HOST

time make

make install

这个一般都不会出错,可以检查在相关的prefix路径中是否已经生成了一些libevent静态动态编译文件,接下来开始在php的配置文件中添加libevent编译配置,

cd /opt/phpdroid/src/php-7.0.9/ext,

git clone https://github.com/expressif/pecl-event-libevent.git (没有使用官网上的扩展库源码是因为在编译的过程中报错),

mv pecl-event-libevent libevent && cd libevent

cd /opt/phpdroid/src/php-7.0.9 && rm configure && ./buildconf –force

./configure –help | grep libevent

( --with-libevent Include libevent support )

发现是使用–with-libevent将libevent支持加入交叉编译配置中,将其加入配置然后./configure \…( 后面根据自己项目需要进行配置 ),运行成功见下图:

Screenshot%20from%202016-08-16%2014-59-19.png?v=34be00a3

运行命令 time make && make install,得到下面输出:

Screenshot%20from%202016-08-16%2015-24-04.png?v=77e3eb7f

测试将编译好的php加入到android系统下的目录/system/bin/中,运行命令php –m查看php中包含的modules,发现libevent已经成功编译入php:

Screenshot%20from%202016-08-16%2015-24-45.png?v=f8ffe419

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值