如何解決linux找不到動(dòng)態(tài)庫(kù)的問(wèn)題?

動(dòng)態(tài)庫(kù)即共享庫(kù),說(shuō)到linux找不到動(dòng)態(tài)庫(kù)的問(wèn)題,首先要了解動(dòng)態(tài)庫(kù)的特點(diǎn):

網(wǎng)站設(shè)計(jì)、成都網(wǎng)站設(shè)計(jì)介紹好的網(wǎng)站是理念、設(shè)計(jì)和技術(shù)的結(jié)合。創(chuàng)新互聯(lián)建站擁有的網(wǎng)站設(shè)計(jì)理念、多方位的設(shè)計(jì)風(fēng)格、經(jīng)驗(yàn)豐富的設(shè)計(jì)團(tuán)隊(duì)。提供PC端+手機(jī)端網(wǎng)站建設(shè),用營(yíng)銷思維進(jìn)行網(wǎng)站設(shè)計(jì)、采用先進(jìn)技術(shù)開(kāi)源代碼、注重用戶體驗(yàn)與SEO基礎(chǔ),將技術(shù)與創(chuàng)意整合到網(wǎng)站之中,以契合客戶的方式做到創(chuàng)意性的視覺(jué)化效果。

● 動(dòng)態(tài)庫(kù)把對(duì)一些庫(kù)函數(shù)的鏈接載入推遲到程序運(yùn)行的時(shí)期。

● 可以實(shí)現(xiàn)進(jìn)程之間的資源共享。(因此動(dòng)態(tài)庫(kù)也稱為共享庫(kù))

● 將一些程序升級(jí)變得簡(jiǎn)單。

● 甚至可以真正做到鏈接載入完全由程序員在程序代碼中控制(顯示調(diào)用)。

由上述中的第1點(diǎn)可知,動(dòng)態(tài)庫(kù)并不是像靜態(tài)庫(kù)那樣將庫(kù)文件以二進(jìn)制形式打包到程序中,而是在程序運(yùn)行到需要調(diào)用對(duì)應(yīng)庫(kù)函數(shù)這個(gè)時(shí)機(jī)的時(shí)候動(dòng)態(tài)加載動(dòng)態(tài)庫(kù),這時(shí)候系統(tǒng)只知道動(dòng)態(tài)庫(kù)的名字,而不知道絕對(duì)路徑,此時(shí)就需要系統(tǒng)動(dòng)態(tài)載入器(dynamic linker/loader);對(duì)于elf的可執(zhí)行程序,是由ld-linux.so來(lái)完成的,它先后搜索elf文件的DT_RPATH段(不可控) =》 環(huán)境變量LD_LIBRARY_PATH =》 /etc/ld.so.cache文件列表 =》 /lib/和/usr/lib 目錄找到庫(kù)文件后載入內(nèi)存。

那么我們需要做的就是將動(dòng)態(tài)庫(kù)所在目錄的絕對(duì)路徑加到動(dòng)態(tài)載入器搜索序的任一次序中,下面說(shuō)具體實(shí)現(xiàn)方法:

方法1:拷貝自己制作的共享庫(kù)到/lib或/usr/lib,不推薦

方法2:將動(dòng)態(tài)庫(kù)所在目錄的絕對(duì)路徑添加到系統(tǒng)環(huán)境變量中

2.1、將動(dòng)態(tài)庫(kù)所在目錄的絕對(duì)路徑臨時(shí)添加到環(huán)境變量中(隨終端關(guān)閉失效)

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/chiliast/homework/day03/shared/lib

2.2、將動(dòng)態(tài)庫(kù)所在目錄的絕對(duì)路徑設(shè)置到~/.bashrc或/etc/profile中(永久生效)

用戶級(jí)別:追加庫(kù)路徑到~/.bashrc文件尾

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/chiliast/homework/day03/shared/lib

source ~/.bashrc 或 . ~/.bashrc使配置生效

系統(tǒng)級(jí)別:追加庫(kù)路徑到/etc/profile文件尾

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/chiliast/homework/day03/shared/lib

source /etc/profile 或 ./etc/profile使配置生效

方法3:將動(dòng)態(tài)庫(kù)所在目錄的絕對(duì)路徑添加到 /etc/ld.so.cache文件中(2步實(shí)現(xiàn))

編輯/etc/ld.so.conf文件,加入庫(kù)文件所在目錄的路徑

運(yùn)行l(wèi)dconfig (需要super user權(quán)限),該命令會(huì)重建/etc/ld.so.cache文件

以上就是linux動(dòng)態(tài)庫(kù)找不到怎么辦的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注創(chuàng)新互聯(lián)其它相關(guān)文章!

名稱欄目:如何解決linux找不到動(dòng)態(tài)庫(kù)的問(wèn)題?
本文來(lái)源:http://bm7419.com/article8/iidpop.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)公司、網(wǎng)站營(yíng)銷、建站公司、微信公眾號(hào)、ChatGPT自適應(yīng)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司