1. 程式人生 > >Linux 動態庫載入

Linux 動態庫載入

動態庫執行時搜尋順序

1.LD_PRELOAD

  LD_PRELOAD是一個環境變數,用於動態庫載入,動態庫載入的優先順序最高;

 

2.-wl,-rpath

  編譯目的碼時指定的動態庫搜尋路徑(指的是用-wl,-rpath),readelf -d 命令可以檢視編譯的目標檔案中rpath的路徑;

  -L指定編譯時的連結路徑,-Wl,-rpath指定執行時連結路徑;

  

3.LD_LIBRARY_PATH

  LD_LIBRARY_PATH是一個環境變數,該環境變數主要用於指定查詢動態庫時除了預設路徑之外的其它路徑;

export LD_LIBRARY_PATH=$(pwd)
./EXE    #EXE為執行檔案  

LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH ./EXE

 

4.配置檔案/etc/ld.so.conf中指定的動態庫搜尋路徑

配置檔案修改完成後,使用ldconfig命令會將/etc/ld.so.conf檔案中所有路徑下的庫更新到記憶體中

 

5.預設動態庫路徑搜尋路徑:/lib

 

6.預設動態庫路徑搜尋路徑:/usr/lib

 

 

編譯時查詢庫的搜尋路徑

1.編譯時使用-L指定庫的路徑,通過環境變數LIBRARY_PATH指定搜尋路徑;

2.系統標準路徑/lib /usr/lib /usr/local/lib;