如何讓linux載入當前目錄的動態庫

2021-08-11 08:34:01 字數 866 閱讀 5371

linux的excutable在執行的時候預設是先搜尋/lib和/usr/lib這兩個目錄,然後按照ld.so.conf裡面的配置搜尋絕對路徑,linux預設是不會在當前目錄搜尋動態庫的。windows載入動態庫的時候,預設是首先載入本地目錄下的動態庫,然後再搜尋windows/system和windows/system32目錄。

windows的動態庫搜尋順序,雖然有可能會造成潛在的混亂,但是對於開發和測試無疑是比較方便的,尤其是debug和release版本的動態庫需要經常切換進行測試的時候。linux的動態庫搜尋順序雖然可以說成是比較嚴謹,但是相對來說也比較呆板,有時候會造成不便。

其實,linux也可以支援「載入當前目錄的動態庫」。只要設定合適的環境變數ld_library_path就可以了。設定方法有以下三種:

1、臨時修改,log out之後就失效

在terminal中執行:export ld_library_path=./

2、讓當前帳號以後都優先載入當前目錄的動態庫

修改~/.bash_profile在檔案末尾加上兩行: ld_library_path=./ 和 export ld_library_path

3、讓所有帳號從此都優先載入當前目錄的動態庫

修改/etc/profile在檔案末尾加上兩行: ld_library_path=./ 和 export ld_library_path

ps:修改ld.so.conf不能達到我們的目的,因為ld.so.conf只支援絕對路徑。

./bashrc 裡也存在路徑,如果以上方法改變不了,可以檢視./bashrc檔案中是否有相關路徑

另外,可以在.pro檔案中加入qmake_lflags += -wl,-rpath=./      從本目錄下開始尋找,不用修改其他路徑

Linux 獲取當前目錄

兩種方法 1.利用getcwd 函式取得當前工作目錄 相當於windows下的getcurrentdirectory 2.取得實際檔案目錄 相當於windows下的getmodulefilename 原理 每個程序在 proc下都有乙個以程序號命名的目錄。在該目錄下有exe檔案,該檔案是乙個鏈結檔案...

Linux如何檢視當前目錄下檔案的個數

檢視當前目錄下檔案的個數 ls l grep wc l 檢視當前目錄下檔案的個數,包括子目錄裡的。ls lr grep wc l 檢視某目錄下資料夾 目錄 的個數,包括子目錄裡的。ls lr grep d wc l 簡要說明 ls l 長列表輸出該目錄下檔案資訊 注意這裡的檔案,不同於一般的檔案,可...

linux下獲取當前目錄

1.取得當前工作目錄 相當於windows下的getcurrentdirectory include stdio.h include stdlib.h include string.h include unistd.h int main else return 0 2.取得實際檔案目錄 相當於win...