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 のおかげで、さらに検索して答えを見つけました。

私は決定的にファイルがありませんでした。

正しいコマンドは次のとおりです ( ANDまたはexport_wrap.cppANDに注意してください) export.cppexport.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 生成ファイルを「含める」必要があります。

于 2013-08-06T09:30:57.723 に答える