首页 > 解决方案 > 如何使 php 扩展名(.so)文件与依赖库一起移植?

问题描述

我需要制作一个可移植的 php 扩展名(.so)文件。创建的库在我的一台机器上运行良好,但是,当我将它发送到另一台机器时,它无法正确加载,因为目标机器上缺少 cJSON 的依赖项。尽管我可以复制所有必需的文件,但我无法在机器上安装 cJSON 库。我当前的 libtool 命令是:

/bin/bash /home/ubuntu/php-extension/libtool --mode=link cc -DPHP_ATOM_INC -I/home/ubuntu/php-extension/include 
-I/home/ubuntu/php-extension/main -I/home/ubuntu/php-extension -static -I/usr/include/php/20170718 
-I/usr/include/php/20170718/main 
-I/usr/include/php/20170718/TSRM 
-I/usr/include/php/20170718/Zend 
-I/usr/include/php/20170718/ext 
-I/usr/include/php/20170718/ext/date/lib 
-I/usr/local/include 
-L/usr/local/lib -lcjson  
-DHAVE_CONFIG_H  -g -O2    
-o myextension.la -export-dynamic -avoid-version -prefer-pic -module -rpath /home/ubuntu/php-extension/modules  
myextension.lo 

我应该如何构建扩展以使其包含所有依赖库并且无需在目标机器上安装库?

标签: cmakefilephp-extensionlibtool

解决方案


推荐阅读