パッケージのライブラリ ディレクトリにインストールされる libtool を使用してビルドされたライブラリがあります/usr/local/lib/myprog/libmylib.so
。libltdl を使用してコードにライブラリを動的にロードしています。このライブラリを 1 台のマシンにロードしようとすると、問題なく動作します。別の例では、同じビルドとライブラリが同じ場所にインストールされていると、「ファイルが見つかりません」というエラーが発生します。
lt_dlforeachfile
(ライブラリをロードするために使用する)直前に呼び出すとlt_dlopenext
、必要なライブラリが検索パスで見つかったことをファイル名を出力することで確認できます。しかし、その直後に、「ファイルが見つかりません」というエラーでロードに失敗します。助言がありますか?
アップデート
dlopen
ライブラリへの絶対パスを使用して明示的に指定するように切り替えてみました。これは、一部のシステムでは機能し、他のシステムでは機能しません。