linux調(diào)用so庫的函數(shù) 如何讓linux加載當前目錄的動態(tài)庫?
如何讓linux加載當前目錄的動態(tài)庫?要讓Linux加載當前目錄的動態(tài)庫,有三種設(shè)置方法:1。暫時修改,注銷后無效。在終端中執(zhí)行:export LD LIBRARY Path=。/ 2. 讓當前帳戶優(yōu)
如何讓linux加載當前目錄的動態(tài)庫?
要讓Linux加載當前目錄的動態(tài)庫,有三種設(shè)置方法:1。暫時修改,注銷后無效。在終端中執(zhí)行:export LD LIBRARY Path=。/ 2. 讓當前帳戶優(yōu)先加載當前目錄~/的動態(tài)庫修改。Bash-in-the-futureuprofile在文件末尾添加兩行:LDLIBRARYupath=。/并導出LD庫路徑3。讓所有帳戶先加載當前目錄的動態(tài)庫,修改/etc/profile,并在文件末尾添加兩行:LDlibraryupath=。/并導出LDLIBRARYPath
你說的程序應(yīng)該采用動態(tài)加載
實際上調(diào)用了這樣一組接口:
dlopen dlclose dlsym函數(shù)名是作為參數(shù)傳入動態(tài)鏈接器的老蘇. 那么老蘇匹配函數(shù)名的符號在加載的動態(tài)庫中找到。如果搜索成功,可以返回指向符號地址的地址。對于函數(shù),此地址相當于函數(shù)指針。整個過程能否順利進行,還取決于當前程序的ABI和動態(tài)庫
要實現(xiàn)熱更改,在不修改操作系統(tǒng)的情況下,so的加載機制必須由主程序接管。so更新后,將手動或自動觸發(fā)鎖定加載解鎖過程。