我正在尝试生成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
非常感谢
答案 0 :(得分:2)
感谢@zaufi,我搜索了更多并找到答案。
我明确错过了一个文件。
正确的命令如下(请注意export_wrap.cpp
和export.cpp
分别为export.o
和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生成的文件。