3
libreadline.soをロードしようとしています。 "libreadline.so.6"のようにバージョン番号を明示的に指定すると、私のコードは正常に動作しますが、単に "libreadline.so"を与えるだけで失敗します。おそらく、私が直接与えるファイル名を開こうとしています。新しいバージョンが現れたときに将来の失敗を避けるために、dlopenをループで呼び出し、バージョン番号を0にカウントダウンします。これは動作し、常にlibreadlineの最新バージョンを取得します。未知のバージョンのライブラリをdlopenする方法
私の質問は、これを行う正しい、またはより良い方法がありますか?
私はlibreadline.so.6がlibreadline.so.6.3へのリンクであることを知っています。彼らはlibreadline.soから最新バージョンへのリンクを持っていません。
バージョン番号を構成ファイルに入れて、適切なバージョンをフェッチすることはどうでしょうか。 – sigmalha
おそらく2つのステップでリンクをたどります.libreadline.soはおそらく実際のライブラリバイナリにリンクするlibreadline.so.6にリンクしています。 –
設定ファイルのバージョン番号:はい、もちろん動作します。バージョンが変更され、設定ファイルが変更されていない場合は、ループに頼ります。ライブラリが更新されたときに、無関係のアプリケーション用にファイルを編集する必要はありません。私の直感は、これを行うための「適切な」方法があるということです! – Jeremy