为什么`LD_LIBRARY_PATH` 不是 Bash 的内置环境变量?

Tim*_*Tim -2 bash environment-variables

来自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.
Run Code Online (Sandbox Code Playgroud)

不是LD_LIBRARY_PATHBash 的内置环境变量是否正确?否则,就没有必要了export

Bash shell 用于PATH定位外部程序,PATH是 Bash 的内置环境变量。

Bash shell 用来LD_LIBRARY_PATH定位程序运行所依赖的共享库,那么为什么不是LD_LIBRARY_PATHBash 的内置环境变量呢?

Ste*_*itt 10

LD_LIBRARY_PATH不被外壳使用,它被动态链接器使用。详情请参阅man ld.so

如果您不导出它,链接器将看不到它,也无法对其进行操作。

  • 此外,没有“内置环境变量”这样的东西。它要么是shell变量,要么是环境变量,环境变量由子进程继承。 (4认同)