私は非常に多くの共有ライブラリで構成されたアプリケーションを持っています。私はいくつかのperl拡張を書いた。また、perlをアプリケーションに埋め込んでいます。PerlをCの質問に埋め込む
私はC++のwithからperlスクリプトを呼び出しています。私のPerl拡張はSVとして命名されている、と言うことができます::ネット::情報とSV ::インターフェイスと私のperlのファイルがこの
use SV::Net::Info;
use SV::Interface;
#use IO::Socket;
...
...
...
のように見ている私は、C++からperlスクリプトを読んで送信することができますよ問題なくC++に出力できます。私はIO自身がCライブラリであるため、これがある
Can't load module IO, dynamic loading not available in this perl.
(You may need to build a new perl executable which either supports
dynamic loading or has the IO module statically linked into it.)
というエラーメッセージが出てい三行目、use IO::Socket;
のコメントを外したときに、問題が発生します。私は上記のようにxs-glueを追加しましたhere。追加された接着剤がboot_IOシンボル(IO.soファイルで定義されています)を探しているので、私の問題は解決しませんでした。アプリケーションがIO.soとリンクすることはできません。これは、実行時にperlがdlopenを使用して開くファイルです。 (また、私のアプリケーションはWindows上で動作する必要があり、Windowsは.dllファイルのみで、.libファイルは提供しません)。退出は何ですか?
私は、dlopenを使用して実行時にIO.soから実際のboot_IO関数を実行するwrapper関数boot_IOを作成することを考えています。これは唯一のオプションですか?
http://www.perlmonks.org/?node_id=916694でPerlMonksにクロスポスト – DavidO
* * dlopenのサポートを持っている動的なlibperlにリンクできますか? – hobbs