1

我正在尝试生成 C++ 程序(Simstring)的 PHP 扩展,但我有点卡住了。

该程序已经提出了与 Swig 一起使用的 python 和 ruby​​ 扩展。

我遵循了Swig PHP 文档,但出现错误。

这是我所做的以及得到的结果,也许您可​​以帮助我:

cd swig;
mkdir php;
ln -s ../export.cpp
ln -s ../export.h
ln -s ../export.i
swig -c++ -php -o export_wrap.cpp export.i
g++ `php-config --includes` -fPIC -c export_wrap.cpp
g++ -shared export_wrap.o -o simstring.so
sudo mv simstring.so my-php-extension-dir/

我在 php.ini 中加载了扩展,但出现以下错误:

PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php5/20121212/simstring.so' - /usr/lib/php5/20121212/simstring.so: undefined symbol: _ZN6writer5closeEv in Unknown on line 0

非常感谢

4

1 回答 1

2

感谢@zaufi,我进行了更多搜索并找到了答案。

我肯定错过了一个文件。

正确的命令如下(请注意export_wrap.cppANDexport.cppexport.oAND export_wrap.o

g++ `php-config --includes` -fPIC -c export_wrap.cpp export.cpp
g++ -shared export.o export_wrap.o -o simstring.so

有关更多信息,您必须“包含” simstring.php 生成的文件。

于 2013-08-06T09:30:57.723 回答