1. 搬入経路
- デフォルトのライブラリ読み込みパス (/lib や /usr/lib など)
- ldconfig はロード パスを指定します。構成ファイル /etc/ld.so.conf で動的ライブラリ検索パスを指定します。
- 指定されたロード パスをコンパイルする: ターゲット コードをコンパイルするときに、gcc パラメーター "-Wl,-rpath" を通じてプログラムの動的ライブラリ検索パスを指定します。
- 環境変数はロード パスを指定します。環境変数 LD_LIBRARY_PATH を通じて動的ライブラリ検索パスを指定します。
2. ロード順序
動的ライブラリのロード検索優先順位 (高から低):
- 指定されたロードパスをコンパイルします
- 環境変数はロードパス(LD_LIBRARY_PATH)を指定します。
- ldconfig はロードパスを指定します
- デフォルトのライブラリロードパス
例証します:
「/usr/local/lib」と「/usr/local/lib/x86_64-linux-gnu、/lib/x86_64-linux-gnu、および /usr/lib/x86_64-linux-gnu はすべて ldconfig で指定されたロード パスです。場所はそれぞれ /etc/ld.so.conf.d/libc.conf および /etc/ld.so.conf.d/x86_64-linux-gnu.conf にあります。
/etc/ld.so.conf ファイルの内容を確認します。/etc/ld.so.conf.d/*.conf が含まれているため、実際には /etc/ld.so.conf 内の各設定ファイルです。 .dディレクトリ、私の環境は次のとおりです。
libc.conf
libnginx.conf
x86_64-linux-gnu.conf
上記の環境によると、より詳細なライブラリ パスの優先順位は次のとおりです。
- 指定されたロードパスをコンパイルします
- 環境変数はロードパス(LD_LIBRARY_PATH)を指定します。
- ldconfig はロード パス /usr/local/lib を指定します。
- ldconfig は、読み込みパス (libnginx.conf の内容) を指定します。
- ldconfig はロード パスを指定します: /usr/local/lib/x86_64-linux-gnu、/lib/x86_64-linux-gnu、および /usr/lib/x86_64-linux-gnu
- デフォルトのライブラリ読み込みパス: /lib および /usr/lib