我环顾四周(最相关的是这个。)
我编写了一个自定义 php 扩展来包装一个静态库(使用 PGI 构建。)
这不是直截了当的,但总的来说:
- 下载的 PHP 源代码
- 使用教程编写了扩展
- 导出 LDFLAGS="-L/home/matt/fstd_php/php-src/ext/fstd/lib -L/opt/pgi/linux86-64/2012/libso"
- 导出 LIBS="-lrmn -lpgf90 -lpghpf2 -lpgf90rtl -lpgftnrtl -lpghpf_rpm -lpgc -lrt -lm"
- 使用扩展构建 PHP,它可以工作
有什么办法可以在 Ubuntu 上预装的 PHP 版本中使用它?
该模块名为 fstd
我尝试模仿其他模块的安装方式(随意选择mongo),所以我在/etc/php5/mods-available中添加了一个ini文件,然后将我在ext/fstd/modules/fstd.so中找到的.so添加到/usr /lib/php5/20100525/
似乎没有与 php 的系统安装一起工作。
所以我在 php.ini 中启用了_dl,并尝试包含 .so。它似乎不包括依赖库。我得到:
matt@khea ...php-src/ext/fstd % php -f fstd.php
PHP Warning: dl(): Unable to load dynamic library '/usr/lib/php5/20100525/fstd.so' - /usr/lib/php5/20100525/fstd.so: undefined symbol: c_fstfrm in /home/matt/fstd_php/php-src/ext/fstd/fstd.php on line 5
符号 c_fstfrm 是我试图包装的静态库中的一个符号。
那么,是否有适当的方法将其安装为系统模块/扩展?否则,要使用自定义扩展,我必须只使用我自己构建的 php 版本和扩展吗?