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 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!