実行時に実行依存共有ライブラリとリンクできるようにしたい弱いシンボルを持つバイナリがあります。
$nm testrun
...
w basic2.test
...
私の最初のテストでは.o
、静的リンク時にファイルを使用していましたが、うまくいきましたが、共有する必要があります。
したがって、私の 2 番目のテストは、そのシンボルが定義された共有ライブラリを取得し、コンパイル時に-lmy
(libmy.so) とリンクすることでした。これも実際に機能しました。
3 番目のステップでは、コンパイル時にリンクせずに ld_preload トリックを使用しようとしましたが、これは機能しませんでした。
nm libmy.so
...
00000550 T basic2.test
...
この特定のものが機能しない理由は本当にわかりません。動的ローダーには、libmy.so にあるものでテストランの弱いシンボルを設定するのに十分な情報が必要なようです。
より多くの作業が必要になると思われる私の最終的な目的は、dlsym で適切なシンボルをチェックしてそこに設定する小さな関数を開始時にロードすることです。
ヒントはありますか?