これは、これに対するフォローアップの質問です。
$ORIGIN
オプションで使用する-rpath
と、ライブラリを使用する場所に関係なく、常に指定された場所を指す動的絶対パスが生成されることを理解しています。
私を混乱させているのは、次のことです。このライブラリを使用して共有バイナリを生成し、バイナリが常にライブラリを検索できるようにするための-Wl,-rpath
オプションを(再度) 設定します。$ORIGIN
現在、$ORIGIN
ライブラリの元の値は使用できなくなっているか、新しいライブラリによって上書きされているように見えるため、間違っています。
独自の を持つ新しい共有オブジェクト (バイナリ) を生成しているので、これはどういうわけか理解できます$ORIGIN
。これを回避する方法は、バイナリ-rpath
に両方の場所を提供することです。ライブラリへの場所とライブラリ自体が必要とする場所です。私の意見-rpath
では、ライブラリにリンクしてその場所を指定することはできず、ライブラリの依存関係の場所も指定する必要があるため、これはほとんど役に立ちません。
私の質問:-rpath
を使用して階層値を指定する方法はあります$ORIGIN
か? 明らかに私の問題を解決する絶対パスを避けたいと思います。