如何解決linux找不到動態(tài)庫的問題?

動態(tài)庫即共享庫,說到linux找不到動態(tài)庫的問題,首先要了解動態(tài)庫的特點:

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

● 動態(tài)庫把對一些庫函數(shù)的鏈接載入推遲到程序運行的時期。

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

● 將一些程序升級變得簡單。

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

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

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

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

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

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

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

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

用戶級別:追加庫路徑到~/.bashrc文件尾

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

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

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

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

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

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

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

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

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

名稱欄目:如何解決linux找不到動態(tài)庫的問題?
本文來源:http://www.muchs.cn/article8/iidpop.html

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

廣告

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

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