なぜ `LD_LIBRARY_PATH` は Bash の組み込み環境変数ではないのですか?

なぜ `LD_LIBRARY_PATH` は Bash の組み込み環境変数ではないのですか?

からGCC の紹介:

ロード パスを設定する最も簡単な方法は、環境変数 を使用することですLD_LIBRARY_PATH。たとえば、次のコマンドは、ロード パスを に設定して、が見つかるよう/opt/gdbm-1.8.3/libにします。libgdbm.so

$ LD_LIBRARY_PATH=/opt/gdbm-1.8.3/lib
$ export LD_LIBRARY_PATH
$ ./a.out
Storing key-value pair... done.

LD_LIBRARY_PATHそれはBash の組み込み環境変数ではないというのは正しいですか? そうでなければ、exportそれは必要ありません。

Bash シェルはPATH外部プログラムを見つけるために使用し、PATHBash の組み込み環境変数です。

Bash シェルは、LD_LIBRARY_PATHプログラムの実行に必要な共有ライブラリを見つけるために を使用しますが、なぜLD_LIBRARY_PATHBash の組み込み環境変数ではないのでしょうか?

答え1

LD_LIBRARY_PATHシェルでは使用されず、ダイナミックリンカーによって使用されます。man ld.so詳細については。

エクスポートしないと、リンカーはそれを認識できず、操作できなくなります。

関連情報