Как сделать файл расширения (.so) php переносимым с зависимыми библиотеками? - PullRequest
3 голосов
/ 15 октября 2019

Мне нужно создать файл расширения 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 

Как мне построить расширение, чтобы оно содержало все зависимые библиотеки и не нужно было устанавливать библиотеку на целевой машине?

...