動的リンカと実行時リンカが SunOS 4 リンカによって使用されたのとは異なるアルゴリズムを使って検索パスを決定します。
以下の例では、SunOS 4 と Solaris 7 の動的リンカおよび実行時リンカの検索パスを比較します。Solaris 7 では、リンクエディタと実行時リンカの検索パスは LD_LIBRARY_PATH
設定値の影響を受けることに注意してください。ただし、実行時リンカでは、プログラムが LD_LIBRARY_PATH
を設定しないで共用ライブラリを検索できるほか、共用ライブラリのローディングがさらに効率的になります。したがって、Solaris 7 では $ORIGIN
を代用することをお勧めします。prog がインストールされた位置からの組み込みライブラリの相対パスを指定してプログラムをビルドしなければならないからです。 たとえば、.../package/bin/prog は、.../package/lib/libmine.so.1 を使用します。
SunOS 4 リンカ検索パス
リンクエディタ: -L, LD_LIBRARY_PATH
, /usr/lib, /usr/local/lib
実行時リンカ: LD_LIBRARY_PATH
, -L, /usr/lib, /usr/local/lib
LD_LIBRARY_PATH
=dirlist1 がある Solaris 7 リンカ検索パス
リンクエディタ: -L, dirlist1, /usr/ccs/lib, /usr/lib
実行時リンカ: dirlist1, -R, /usr/lib
LD_LIBRARY_PATH
=dirlist1, dirlist2) がある Solaris 7 リンカ検索パス
リンクエディタ: dirlist1, -L, dirlist2, /usr/ccs/lib, /usr/lib
Solaris 7 リンカは、$ORIGIN
を使ってパスを検索します。
実行時リンカ: -R, $ORIGIN/../lib
また、Solaris 7 では、LD_LIBRARY_PATH_ 64
は LD_LIBRARY_PATH
の 64 ビット専用バージョンです。