一、庫檔案的搜尋路徑:
2、通過環境變數ld_library_path指定動態庫搜尋路徑(當通過該環境變數指定多個動態庫搜尋路徑時,路徑之間用冒號":"分隔)
3、在編譯目標**時指定該程式的動態庫搜尋路徑(還可以在編譯目標**時指定程式的動態庫搜尋路徑。 這是通過gcc 的引數"-wl,-rpath,"指定,當指定多個動態庫搜尋路徑時,路徑之間用冒號":"分隔)
4、預設的動態庫搜尋路徑/lib
5、預設的動態庫搜尋路徑/usr/lib
搜尋的先後順序是:
1.編譯目標**時指定的動態庫搜尋路徑;
2.環境變數ld_library_path指定的動態庫搜尋路徑;
3.配置檔案/etc/ld.so.conf中指定的動態庫搜尋路徑;
4.預設的動態庫搜尋路徑/lib;
5.預設的動態庫搜尋路徑/usr/lib。
二、shell可執行程式命令檔案搜尋路徑:
1.檢視所有的搜尋路徑:echo $path
2.新增新的路徑:
1)只對當前shell視窗有效:
export path=$path:/new path
2)對所有視窗有效:
修改當前使用者的.bash_profile檔案,在path=$path……後新增":/new path";
儲存退出後,需要在當前視窗中執行". .bash_profile",更新配置,之後用echo $path顯示更新後的路徑,可以看到新加入的路徑;
注意:在重新登入前所有新開啟的shell視窗要用到新的路徑都需要執行". .bash_profile",更新配置,因為.bash_profile檔案的內容在使用者登入時就讀取了;
Linux下動態載入庫
七月 9th,2011 以前看到過windows下載入動態庫的例子,linux下沒有特別關注過。動態載入庫有很多好處,比如通過讀取配置檔案,按照配置資訊來為指定型別或指定目錄下的資料使用指定的動態庫方法,既實現了程式的松耦合,也方便擴充套件。在linux下動態載入庫要使用到dl庫。使用的方法記錄如下...
Linux下的靜態庫 動態庫和動態載入庫
linux下可以建立兩種型別的庫 靜態庫 a 在鏈結期間被應用程式直接鏈結進可執行檔案 動態鏈結庫 so 動態庫還分為兩種用法 a 應用程式執行期間鏈結動態庫,但是在編譯期間宣告動態庫的存在,也就是說這種動態庫必須在編譯時對編譯器可見,但編譯器卻不將此種庫編譯進可執行檔案 b 在執行期間,動態載入和...
Linux下動態庫的載入路徑問題
libiconv.so.2 cannot open shared objectroot賬戶登入驗證沒有問題,那就是許可權問題 vim etc ld.so.conf 檢視是否有使用者的動態庫載入路徑,如果存在刪除即可 最後在命令列ldconfig1.編譯目標 時指定的動態庫搜尋路徑 2.環境變數ld ...