foo.so
ベンダーから提供されたオブジェクト ファイル — — があります。そのオブジェクト ファイルは、公開されているライブラリ — に静的にリンクされていましたbar_1.0.a
。bar_1.1.a
重大なバグを修正した新しいバージョンのライブラリがありますが、ベンダーは の新しいバージョンを提供してfoo.so
いないため、バグ修正を利用できません。
のソース コードにアクセスできないためfoo.so
、新しいバージョンの に対して再コンパイルすることはできませんbar
。のソース コードにアクセスできるのでbar
、自由にビルドできます。のシンボルはbar
1.0 と 1.1 の間で変更されておらず、実装の一部のみが変更されています。
のソースコードにアクセスせずに、静的にリンクされbar_1.0.a
たライブラリをに置き換える/オーバーライドする方法があるかどうかを知りたいです。または、それが不可能な場合は、静的にリンクされているにもかかわらず、何らかの方法で動的にリンクすることを強制できますか?foo.so
bar_1.1.a
foo.so
foo.so
bar_1.1.so
bar_1.0.a
動的リンクに影響を与えるさまざまな環境変数があることは知っていLD_*
ますが、この場合はそれが役立つとは思いません。