Linux下共享庫搜尋方式

2021-07-05 12:46:13 字數 384 閱讀 1219

在解析共享庫依賴時,會檢查依賴選項中是否有斜線(/)。如果有,那麼會將其看成為路徑,在該路徑下載入共享庫。如果沒有協議,按一下方式搜尋:

1)如果可執行檔案的dt_rpath執行時庫路徑列表中包含目錄,但不包含dt_runapth列表時,那麼在該包含目錄中搜尋改共享庫。

2)如果定義了ld_library_path環境變數,那麼會依次搜尋該環境變數包含的目錄。但如果可執行檔案是乙個set-user-id或set-group-id程式,不會搜尋該環境變數的路徑。

3)如果dt_runpath執行庫路徑列表包含目錄,會搜尋該目錄,搜尋順序按鏈結時指定目錄順序。

4)檢查/etc/ld.so.cache檔案是否包含了與庫相關的選項。

5)搜尋標準目錄/lib和/usr/lib目錄。

Linux下動態共享庫載入時的搜尋路徑詳解

對動態庫的實際應用還不太熟悉的讀者可能曾經遇到過類似 error while loading shared libraries 這樣的錯誤,這是典型的因為需要的動態庫不在動態鏈結器ld.so的搜尋路徑設定當中導致的。1 elf可執行檔案中動態段中dt rpath所指定的路徑。這實際上是通過一種不算很...

Linux下動態共享庫載入時的搜尋路徑詳解

對動態庫的實際應用還不太熟悉的讀者可能曾經遇到過類似 error while loading shared libraries 這樣的錯誤,這是典型的因為需要的動態庫不在動態鏈結器ld.so的搜尋路徑設定當中導致的。具體說來,動態鏈結器ld.so按照下面的順序來搜尋需要的動態共享庫 1 elf可執行...

Linux下動態共享庫載入時的搜尋路徑詳解

對動態庫的實際應用還不太熟悉的讀者可能曾經遇到過類似 error while loading shared libraries 這樣的錯誤,這是典型的因為需要的動態庫不在動態鏈結器ld.so的搜尋路徑設定當中導致的。具體說來,動態鏈結器ld.so按照下面的順序來搜尋需要的動態共享庫 1 elf可執行...