ld
バージョン管理されていない.soファイルに対して強制的にリンクできますか?
Linuxでは、C ++プログラムを共有ライブラリにリンクすると、バージョン管理された.soファイルにバインドされます。これは通常、非常に良い方法です。たとえば、プログラムを次のようにコンパイルすると、
g++ main.cxx -l somelib
次に確認します
ldd ./a.out
それは次のようなものを印刷します
libsomelib.so.1 => /xxxx/somelib/libsomelib.so.1
システムが他の場所で壊れているため、このファイルは、シンボリックリンクlibsomelib.so
の場合のように、通常のようにではなく、ターゲットにインストールされます。libsomelib.so.1
これを変更することはできないため、回避策として、バージョン管理されていない.soファイルにリンクするようにmakefileを変更したいと思います。(すべてが制御された環境にあるため、ここではバイナリ互換性は問題になりません)。