PHP-CPP 开发的PHP扩展如何不依赖libphpcpp实现分发so
PHP-CPP 开发的PHP扩展如何不依赖libphpcpp实现分发so
通过PHP-CPP官方下载的makefile编译安装后的php扩展是要依赖
libphpcpp.so
通过下面的修改可以将libphpcpp静态链接到你自己开发的PHP扩展里,实现在别人的机器里,不安装PHP-CPP也可以使用你的PHP扩展。
1. 开始
只需确保将您的 PHP 扩展链接到libphpcpp.a而不是与phpcpp.so. 需要libphpcpp.a使用-fpicor重新编译-fPIC。
2.修改PHP-CPP的Makefile:
COMPILER_FLAGS = -Wall -c -std=c++11 -fvisibility=hidden -DBUILDING_PHPCPP -Wno-write-strings -MD
SHARED_COMPILER_FLAGS = -fpic
STATIC_COMPILER_FLAGS = -fpic
PHP_COMPILER_FLAGS = ${COMPILER_FLAGS} `${PHP_CONFIG} --includes`
3.自己写的 php 扩展内的 Makefile 修改:
COMPILER_FLAGS = -Wall -c -O2 -std=c++11 -fpic -o
LINKER_FLAGS = -shared -fpic -Wl,--whole-archive
LINKER_DEPENDENCIES = -l:libphpcpp.a -Wl,--no-whole-archive
4.经过以上2步修改 然后验证一下
# ldd ./zimuge.so
linux-vdso.so.1 => (0x00007ffe4d3e2000)
libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007f140c06d000)
libm.so.6 => /lib64/libm.so.6 (0x00007f140bd6b000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f140bb54000)
libc.so.6 => /lib64/libc.so.6 (0x00007f140b792000)
/lib64/ld-linux-x86-64.so.2 (0x00007f140c628000)
发现so,不再依赖libphpcpp.so。
本作品采用《CC 协议》,转载必须注明作者和本文链接