同じ SONAME とインターフェイスを持つ 2 つのライブラリ (A と B) があるとします。開発者はコンパイル時に A に対してリンクしましたが、ユーザーは実行前に $LD_LIBRARY_PATH を設定しました。すべてはごく普通のことですが、ユーザーは、開発者が望んでいたものとは異なるライブラリを使用していることに気づきません。
私はコンパイルの学習者ですが、これが単なるハックであり、避けるべきかどうかはわかりません。コンパイラに "-Wl,--rpath" を指定するとランタイム リンク パスが優先されることはわかっていますが、ソフトウェア開発における最も "標準的な" 戦略が何であるかはわかりません。