為什麼「LD_LIBRARY_PATH」不是 Bash 的內建環境變數?

為什麼「LD_LIBRARY_PATH」不是 Bash 的內建環境變數?

海灣合作委員會簡介

設定載入路徑最簡單的方法是透過環境變數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 shell 用於PATH定位外部程序,PATH是 Bash 的內建環境變數。

Bash shell 用於LD_LIBRARY_PATH定位程式運行所依賴的共享庫,那麼為什麼LD_LIBRARY_PATHBash 沒有內建環境變數呢?

答案1

LD_LIBRARY_PATH不被 shell 使用,它被動態連結器使用。看man ld.so了解詳情。

如果不導出它,連結器將看不到它並且無法對其進行操作。

相關內容