Почему `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для поиска внешней программы и PATHявляется встроенной переменной среды Bash.

Оболочка Bash используется LD_LIBRARY_PATHдля поиска общих библиотек, которые используются программой для работы. Так почему же LD_LIBRARY_PATHвстроенная переменная окружения Bash не является таковой?

решение1

LD_LIBRARY_PATHне используется оболочкой, а используется динамическим компоновщиком. Смотритеman ld.soдля получения подробной информации.

Если вы его не экспортируете, компоновщик его не увидит и не сможет с ним что-либо сделать.

Связанный контент