為初學(xué)者簡(jiǎn)單介紹Linux ldd命令
如果您的工作涉及到 Linux 中的可執(zhí)行文件和共享庫(kù)的知識(shí),則需要了解幾種命令行工具。其中之一是 ldd
,您可以使用它來(lái)訪問(wèn)共享對(duì)象依賴關(guān)系。在本教程中,我們將使用一些易于理解的示例來(lái)討論此實(shí)用程序的基礎(chǔ)知識(shí)。
請(qǐng)注意,這里提到的所有示例都已在 Ubuntu 16.04 LTS 上進(jìn)行了測(cè)試。
Linux ldd 命令
正如開頭已經(jīng)提到的,ldd
命令打印共享對(duì)象依賴關(guān)系。以下是該命令的語(yǔ)法:
ldd [option]... file...
下面是該工具的手冊(cè)頁(yè)對(duì)它作出的解釋:
ldd 會(huì)輸出命令行指定的每個(gè)程序或共享對(duì)象所需的共享對(duì)象(共享庫(kù))。
以下使用問(wèn)答的方式讓您更好地了解ldd的工作原理。
問(wèn)題一、 如何使用 ldd 命令?
ldd
的基本用法非常簡(jiǎn)單,只需運(yùn)行 ldd
命令以及可執(zhí)行文件或共享對(duì)象的文件名稱作為輸入。
ldd [object-name]
例如:
ldd test
How to use ldd
所以你可以看到所有的共享庫(kù)依賴已經(jīng)在輸出中產(chǎn)生了。
Q2、 如何使 ldd 在輸出中生成詳細(xì)的信息?
如果您想要 ldd
生成詳細(xì)信息,包括符號(hào)版本控制數(shù)據(jù),則可以使用 -v
命令行選項(xiàng)。例如,該命令
ldd -v test
當(dāng)使用 -v
命令行選項(xiàng)時(shí),在輸出中產(chǎn)生以下內(nèi)容:
How to make ldd produce detailed information in output
Q3、 如何使 ldd 產(chǎn)生未使用的直接依賴關(guān)系?
對(duì)于這個(gè)信息,使用 -u
命令行選項(xiàng)。這是一個(gè)例子:
ldd -u test
How to make ldd produce unused direct dependencies
Q4、 如何讓 ldd 執(zhí)行重定位?
您可以在這里使用幾個(gè)命令行選項(xiàng):-d
和 -r
。 前者告訴 ldd
執(zhí)行數(shù)據(jù)重定位,后者則使 ldd
為數(shù)據(jù)對(duì)象和函數(shù)執(zhí)行重定位。在這兩種情況下,該工具都會(huì)報(bào)告丟失的 ELF 對(duì)象(如果有的話)。
ldd -d
ldd -r
Q5、 如何獲得關(guān)于ldd的幫助?
--help
命令行選項(xiàng)使 ldd
為該工具生成有用的用法相關(guān)信息。
ldd --help
How get help on ldd
總結(jié)
ldd
不像 cd
、rm
和 mkdir
這樣的工具類別。這是因?yàn)樗菫樘囟康亩鴺?gòu)建的。該實(shí)用程序提供了有限的命令行選項(xiàng),我們?cè)谶@里介紹了其中的大部分。要了解更多信息,請(qǐng)前往 ldd
的手冊(cè)頁(yè)。