如何在 Linux 中檢視可執行檔案使用的所有共享庫?


我們知道共享庫是在執行時可以連結到任何程式的庫。為了檢視可執行檔案使用的所有共享庫,我們使用 Linux 命令實用程式 ldd。我們可以在 Linux 機器上輕鬆找到共享庫,因為它們通常以 lib* 字首開頭。

讓我們首先了解並檢視一些如何使用 Linux 提供給我們的 ldd 命令的示例。

Ldd 是 Linux 提供給我們的一個命令實用程式,主要用於我們想知道可執行檔案甚至共享庫的共享庫依賴項的情況。

LDD 語法

ldd [OPTION] .. FILE ..

上述命令中的 [OPTION] 佔位符可以替換為 ldd 命令提供的標誌,其中一些最常用的標誌是 -

  • -v - 列印所有資訊

  • -d - 處理資料重定位

  • -u - 用於列印未使用的直接依賴項

  • -r - 處理資料和函式重定位

現在我們對 ldd 命令有了一點了解,讓我們探索一些它的示例,在這些示例中,我們將顯示可執行檔案的依賴項等等。

示例 1

命令

ldd /bin/cp

在上面的命令中,我們正在對儲存在 Linux 目錄的 /bin 資料夾內的名為 cp 的可執行檔案執行 ldd 命令。

輸出

linux-vdso.so.1 => (0x00007fffaf3ff000)
libselinux.so => /lib64/libselinux.so (0x0000003a06a00000)
librt.so => /lib64/librt.so (0x0000003a06200000)
libacl.so.1 => /lib64/libacl.so (0x0000003a13000000)
libattr.so.1 => /lib64/libattr.so (0x0000003a0ea00000)
libc.so.3 => /lib64/libc.so.3 (0x0000003a05200000)
libdl.so.2 => /lib64/libdl.so.2 (0x0000003a05a00000)
/lib64/ld-linux-x86-64.so.2 (0x0000003a04a00000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x0000003a05600000)

我們還可以藉助下面示例中顯示的命令來顯示可執行檔案的未使用直接依賴項

示例 2

命令

ldd -u /bin/cp

輸出

Unused direct dependencies:

/lib64/libselinux.so.1
/lib64/librt.so.1
/lib64/libacl.so.1
/lib64/libattr.so.1

更新時間: 2021-07-31

1K+ 閱讀量

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.