rlTD_NOLOADでdlopenを使用すると、共有オブジェクトがすでにロードされているかどうかを確認できることを知っています。ただし、これが実行可能ファイルにリンクされていて、アプリケーションの起動時にリンカによってロードされた場合、これは機能しないようです。
つまり、mylib.soがあり、それをdlopenでロードするとします。後で、RLTD_NOLOADを使用してdlopenを作成すると、期待どおりにハンドルが取得されます。
ただし、mylib.soをアプリケーション(makefileの-lmylib)にリンクすると、dlopenはNULLを返します。
共有オブジェクトがexecに直接リンクされている場合、どうすれば共有オブジェクトへのハンドルを取得できますか。明示的にロードされていませんか?
前もって感謝します