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