php扩展开放PHP-CPP文档

PHP-CPP编译安装

git clone https://github.com/CopernicaMarketingSoftware/PHP-CPP.git
make
sudo make install

如果报错
/bin/sh: php-config: 未找到命令
common/modifiers.cpp:13:10: 致命错误:php.h:没有那个文件或目录
 #include <php.h>

如果报错运行cp /www/server/php/81/bin/php-config /usr/bin/php-config

第二次编译清空缓存 
sudo make clean

不依赖libphpcpp实现so

PHP-CPP 开发的 PHP 扩展如何不依赖 libphpcpp 实现分发 so

通过 PHP-CPP 官方下载的 makefile 编译安装后的 php 扩展是要依赖
libphpcpp.so
通过下面的修改可以将 libphpcpp 静态链接到你自己开发的 PHP 扩展里,实现在别人的机器里,不安装 PHP-CPP 也可以使用你的 PHP 扩展。

开始

只需确保将您的 PHP 扩展链接到libphpcpp.a而不是与phpcpp.so. 需要libphpcpp.a使用-fpicor重新编译-fPIC。

修改 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`

自己写的 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

经过以上 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。

赞(0)
未经允许不得转载:程序员中文网 » php扩展开放PHP-CPP文档
关于我们 免责申明 意见反馈 隐私政策
程序员中文网:公益在线网站,帮助学习者快速成长!
关注微信 技术交流
推荐文章
每天精选资源文章推送
推荐文章
随时随地碎片化学习
推荐文章
发现有趣的