2013-08-05 80 views
1

我想要生成一个C++程序的PHP扩展(Simstring),但我有点困惑。无法使用swig创建PHP扩展

该程序已经提出了与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 

非常感谢

+0

你绝对错过了一些图书馆链接 – zaufi

回答

1

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

我完全错过了一个文件。

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