1

SWIG の使用方法を学んでおり、C ライブラリの php ラッパーを作成しています。拡張機能は正常にコンパイルされますが、関数を呼び出そうとすると、次のエラーが発生します。

php: シンボル検索エラー: /usr/lib/php5/20090626+lfs/fact.so: 未定義のシンボル: 事実

4

1 に答える 1

0

問題はおそらく、モジュールの名前 ( %moduleを参照するか、コマンド ラインで渡される) と、生成している .so ファイルの名前の不一致によるものです。

PHP、またはロード可能なバイナリ モジュールを受け入れるシステムは、ロードしようとしているライブラリへのエントリ ポイントの名前について特定の仮定を行います。PHP は、ファイル名 (fact.so) に「fact」という関数が含まれていると想定しているようです。

SWIG を実行するとき、モジュール名を明示的に "fact" に設定すると、問題が解決する可能性があります。そうでない場合は、生成された SWIG ソース ファイルを投稿すると、問題のデバッグに役立つ可能性があります。

于 2011-04-04T05:36:54.793 に答える