无法使用swig创建PHP扩展

时间:2013-08-05 12:12:54

标签: php c++ swig

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

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

我跟着Swig PHP documentation,但我收到了错误。

这是我所做的和我得到的结果,也许你可以帮助我:

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

非常感谢

1 个答案:

答案 0 :(得分:2)

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

我明确错过了一个文件。

正确的命令如下(请注意export_wrap.cppexport.cpp分别为export.oexport_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生成的文件。