1.應(yīng)用程序執(zhí)行需要庫(kù)的支持
在制作自己的發(fā)行版時(shí)經(jīng)常需要判斷某條命令需要哪些共享庫(kù)文件的支持,以確保指定的命令在獨(dú)立的系統(tǒng)內(nèi)可以可靠的運(yùn)行;
在Linux環(huán)境下通過ldd命令即可實(shí)現(xiàn),在終端下執(zhí)行:
ldd /bin/ls 。(注意 file指令)
即可得到/bin/ls命令的相關(guān)共享庫(kù)文件列表:
libtermcap.so.2 => /lib/libtermcap.so.2
libc.so.6 => /lib/libc.so.6
/lib/ld-linux.so.2 => /lib/ld-linux.so.2
注意:
在 ldd 命令打印的結(jié)果中,“=>”左邊的表示該程序需要連接的共享庫(kù)之 so 名稱,右邊表示由 Linux 的共享庫(kù)系統(tǒng)找到的對(duì)應(yīng)的共享庫(kù)在文件系統(tǒng)中的具體位置。默認(rèn)情況下,/etc/ld.so.conf 文件中包含有默認(rèn)的共享庫(kù)搜索路徑。
2 知識(shí)點(diǎn):
如果使用 ldd 命令時(shí)沒有找到對(duì)應(yīng)的共享庫(kù)文件和其具體位置,可能是兩種情況引起的:
1.共享庫(kù)沒有安裝在該系統(tǒng)中;
2.共享庫(kù)保存在 /etc/ld.so.conf 文件列出的搜索路徑之外的位置。
通常情況下,許多開放源代碼的程序或函數(shù)庫(kù)都會(huì)默認(rèn)將自己安裝到 /usr/local 目錄下的相應(yīng)位置(如:/usr/local/bin 或 /usr/local/lib),以便與系統(tǒng)自身的程序或函數(shù)庫(kù)相區(qū)別。而許多 Linux 系統(tǒng)的 /etc/ld.so.conf 文件中默認(rèn)又不包含 /usr/local/lib。因此,往往會(huì)出現(xiàn)已經(jīng)安裝了共享庫(kù),但是卻無(wú)法找到共享庫(kù)的情況。具體解決辦法如下:
檢查 /etc/ld.so.conf 文件,如果其中缺少 /usr/local/lib 目錄,就添加進(jìn)去;注意:在修改了 /etc/ld.so.conf 文件或者在系統(tǒng)中安裝了新的函數(shù)庫(kù)之后,需要運(yùn)行一個(gè)命令:ldconfig ,該命令用來(lái)刷新系統(tǒng)的共享庫(kù)緩存,即 /etc/ld.so.cache 文件。為了減少共享庫(kù)系統(tǒng)的庫(kù)搜索時(shí)間,共享庫(kù)系統(tǒng)維護(hù)了一個(gè)共享庫(kù) so 名稱的緩存文件/etc/ld.so.cache。因此,在安裝新的共享庫(kù)之后,一定要運(yùn)行 ldconfig 刷新該緩存。
【本文標(biāo)簽】: 多層 pcb 多層PCB面板 沉金板 公司設(shè)備
【責(zé)任編輯】:鼎紀(jì)電子PCB??? 版權(quán)所有:http://ai-hots.com/轉(zhuǎn)載請(qǐng)注明出處
掃一掃更精彩!
2001-2018 深圳鼎紀(jì)電子有限公司 版權(quán)所有
粵ICP備16081348號(hào)
全國(guó)服務(wù)熱線:0755-27586790
24小時(shí)銷售熱線:18025855806|18682125228
地址:深圳市寶安區(qū)西鄉(xiāng)黃崗嶺工業(yè)區(qū)灣區(qū)人工智能產(chǎn)業(yè)園B棟605
深圳鼎紀(jì)電子有限公司:單面PCB板