LD LIBRARY PATH環境變數說明

2021-08-28 15:00:33 字數 1485 閱讀 2175

library_path和ld_library_path是linux下的兩個環境變數,二者的含義和作用分別如下:

library_path環境變數用於在程式編譯期間查詢動態鏈結庫時指定查詢共享庫的路徑,例如,指定gcc編譯需要用到的動態鏈結庫的目錄。設定方法如下(其中,libdir1和libdir2為兩個庫目錄):

export library_path=libdir1:libdir2:$library_path

ld_library_path環境變數用於在程式載入執行期間查詢動態鏈結庫時指定除了系統預設路徑之外的其他路徑,注意,ld_library_path中指定的路徑會在系統預設路徑之前進行查詢。設定方法如下(其中,libdir1和libdir2為兩個庫目錄):

export ld_library_path=libdir1:libdir2:$ld_library_path

舉個例子,我們開發乙個程式,經常會需要使用某個或某些動態鏈結庫,為了保證程式的可移植性,可以先將這些編譯好的動態鏈結庫放在自己指定的目錄下,然後按照上述方式將這些目錄加入到ld_library_path環境變數中,這樣自己的程式就可以動態鏈結後載入庫檔案執行了。

區別與使用:

開發時,設定library_path,以便gcc能夠找到編譯時需要的動態鏈結庫。

發布時,設定ld_library_path,以便程式載入執行時能夠自動找到需要的動態鏈結庫。

linux環境變數名,該環境變數主要用於指定查詢共享庫(動態鏈結庫)時除了預設路徑之外的其他路徑。(該路徑在預設路徑之前查詢)

移植程式時的經常碰到需要使用一些特定的動態庫,而這些編譯好的動態庫放在我們自己建立的目錄裡,這時可以將這些目錄設定到ld_library_path中。

當執行函式動態鏈結.so時,如果此檔案不在預設目錄下『/usr/local/lib』 and 『/usr/lib』.

那麼就需要指定環境變數ld_library_path

假如現在需要在已有的環境變數上新增新的路徑名,則採用如下方式:

ld_library_path=newdirs:$ld_library_path.(newdirs是新的路徑串)

linux 執行的時候,是如何管理共享庫(*.so)的?在 linux 下面,共享庫的尋找和載入是由 /lib/ld.so 實現的。 ld.so 在標準路經(/lib, /usr/lib) 中尋找應用程式用到的共享庫。

但是,如果需要用到的共享庫在非標準路經,ld.so 怎麼找到它呢?

目前,linux 通用的做法是將非標準路經加入 /etc/ld.so.conf,然後執行 ldconfig 生成 /etc/ld.so.cache。 ld.so 載入共享庫的時候,會從 ld.so.cache 查詢。

傳統上,linux 的先輩 unix 還有乙個環境變數:ld_library_path 來處理非標準路經的共享庫。ld.so 載入共享庫的時候,也會查詢這個變數所設定的路經。

ld_library_path=$ld_library_path:./lib

export ld_library_path

環 境變數 ld library path

從紐約的 公園到倫敦海德公園,從巴黎盧森堡公園到東京上野公園。城央裡的公園,佔據著城市中心臻稀的生態資源,彰顯著人文景觀與品質生活,讓冰冷的城市有了生機與活力,成為都市人的精神家園。如今,這樣美好的故事同樣在龍湖 梵城裡上演。龍湖 梵城 星曜三大城央公園環幕,難得的城央公園品質生活大境,全城爭藏。實...

LD LIBRARY PATH用法詳解

date 2017 12 9 ld library path是linux系統下的環境變數名,類似於path 設定可執行檔案的搜尋路徑 作用 用於指定查詢共享庫 動態鏈結庫 時除了預設路徑 lib和.usr lib 之外的其他路徑。使用情形 移植程式時的經常碰到需要使用一些特定的動態庫,而這些編譯好的...

linux設定LD LIBRARY PATH變數

在 linux 下,如果你寫好了自己的動態鏈結庫,需要在其它程式裡呼叫,則需要讓這些程式能找到這些動態鏈結庫。如果設定不對,會出現類似如下的錯誤 test error while loading shared libraries libexampleso.so.0 cannot open share...