セットアップは次のとおりです。
Aロードするアプリケーションがありますliba.so(コンパイル時にリンクされます)liba.soシンボルをエクスポートしますexpAA私はどちらかを制御しませんliba.so- アプリケーション A は、指定したライブラリを
libmine.so同じプロセスにロードできますdlopen(プラグイン アーキテクチャを考えてください)。 expAfromを使用する必要がありますlibmine.soが、明示的にリンクせずにそれを見つける方法がわかりませんliba.so。これは、これまで行ってきたことです。そのシンボルが私のローカルコピーのシンボルと同じアドレスにあることが保証されていないためliba.so(またはそうですか?)、これは現実の世界では機能しないと思います。libmine.soはクローズドソースになり、A.
私はこのようなことをしたことがないので、ライブラリのロードの詳細については少し不明です. たとえば、dlopen("liba.so")内から実行しようとlibmine.soすると、既に読み込まれているライブラリまたは新しいコピーへのハンドルを取得できますか?
ロード方法に関して、libmine.so私が知っているのは、それがロードされることRTLD_LAZYだけです(そして他には何もありません)。
どんな助けや指針も大歓迎です!