.soプラグインをロードする実行可能ファイルがあります。
-rdynamicシンボル コールバックが発生するように、実行可能ファイルがリンクされます。
実行可能ファイルに含まれている静的ライブラリがあります。これにはBLAH_hello()、.a
スタティック ライブラリは実行可能ファイルでは使用されません。BLAH_hello()つまり、実行コード内にへの呼び出しはありません。
ただし、 に.soは への呼び出しがありますBLAH_hello()。
私dlopen()が.so未定義のシンボルについて不平を言うときBLAH_hello()
BLAH_hello()のように、実行可能コードにダミーの呼び出しを含めると、BLAH_hello(NULL); . シンボルは実行可能ファイルに含まれており、.soロード時にシンボルが検出されます。
をリンクすることもできると確信.soして.aいますが、動的にロードされた複数の が呼び出しを.so使用するBLAH_helloため、実行可能ファイルに含めることは理にかなっています。ライブラリをそれぞれにリンクすると、シンボルの競合も心配です.so。
だから私が疑問に思っているのは、実行可能ファイルで実際に使用さ.aれていなくても、実行可能ファイルにシンボルを取得する方法ですか?