2013-08-05 193 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生成的文件。