動態(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è)計團隊。提供PC端+手機端網(wǎng)站建設(shè),用營銷思維進行網(wǎng)站設(shè)計、采用先進技術(shù)開源代碼、注重用戶體驗與SEO基礎(chǔ),將技術(shù)與創(chuàng)意整合到網(wǎng)站之中,以契合客戶的方式做到創(chuàng)意性的視覺化效果。
● 動態(tài)庫把對一些庫函數(shù)的鏈接載入推遲到程序運行的時期。
● 可以實現(xiàn)進程之間的資源共享。(因此動態(tài)庫也稱為共享庫)
● 將一些程序升級變得簡單。
● 甚至可以真正做到鏈接載入完全由程序員在程序代碼中控制(顯示調(diào)用)。
由上述中的第1點可知,動態(tài)庫并不是像靜態(tài)庫那樣將庫文件以二進制形式打包到程序中,而是在程序運行到需要調(diào)用對應(yīng)庫函數(shù)這個時機的時候動態(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)庫找不到怎么辦的詳細內(nèi)容,更多請關(guān)注創(chuàng)新互聯(lián)其它相關(guān)文章!
名稱欄目:如何解決linux找不到動態(tài)庫的問題?
本文來源:http://aaarwkj.com/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)