1.在製做本身的發行版時常常須要判斷某條命令須要哪些共享庫文件的支持,以確保指定的命令在獨立的系統內能夠可靠的運行;
在Linux環境下經過ldd命令便可實現,在終端下執行:
ldd /bin/ls //ldd命令一般使用"-v"或"--verbose"選項來顯示所依賴的動態鏈接庫的儘量的詳細信息。
便可獲得/bin/ls命令的相關共享庫文件列表:linux
libtermcap.so.2 => /lib/libtermcap.so.2 (0x4001c000) libc.so.6 => /lib/libc.so.6 (0x40020000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000) |
注意:在 ldd 命令打印的結果中,「=>」左邊的表示該程序須要鏈接的共享庫之 so 名稱,右邊表示由 Linux 的共享庫系統找到的對應的共享庫在文件系統中的具體位置。默認狀況下,/etc/ld.so.conf 文件中包含有默認的共享庫搜索路徑。緩存
2.龍芯電腦中更新了庫文件時,常常會引發某些軟件沒法使用,能夠經過ldd命令來檢查軟件須要那些共享庫的支持,如:之前在安裝apt-get install devscripts軟件時安裝更新了不少庫,結果致使OpenOffice沒法使用,可使用命令:函數
#ldd /opt/openoffice.org2.0/program/soffice.bin開放源代碼
查看其依賴的共享庫文件。ip
知識點:get
一、若是使用 ldd 命令時沒有找到對應的共享庫文件和其具體位置,多是兩種狀況引發的:table
一般狀況下,許多開放源代碼的程序或函數庫都會默認將本身安裝到 /usr/local 目錄下的相應位置(如:/usr/local/bin 或 /usr/local/lib),以便與系統自身的程序或函數庫相區別。而許多 Linux 系統的 /etc/ld.so.conf 文件中默認又不包含 /usr/local/lib。所以,每每會出現已經安裝了共享庫,可是卻沒法找到共享庫的狀況。具體解決辦法以下:軟件
檢查 /etc/ld.so.conf 文件,若是其中缺乏 /usr/local/lib 目錄,就添加進去;注意:在修改了/etc/ld.so.conf 文件或者在系統中安裝了新的函數庫以後,須要運行一個命令:ldconfig ,該命令用來刷新系統的共享庫緩存,即 /etc/ld.so.cache 文件。爲了減小共享庫系統的庫搜索時間,共享庫系統維護了一個共享庫 so 名稱的緩存文件/etc/ld.so.cache。所以,在安裝新的共享庫以後,必定要運行 ldconfig 刷新該緩存。搜索
二、使用nm命令也能夠獲取庫函數的信息;nm命令能夠列出一個函數庫文件中的符號表,它對靜態的庫函數和共享的庫函數都能起做用。終端