linux ldd 檢視依賴的庫檔案

2021-07-27 08:46:19 字數 822 閱讀 1450

[root@localhost testprogs]# ldd openrtsp

linux-vdso.so.1 => (0x00007ffd48294000)

libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x0000003f77000000)

libm.so.6 => /lib64/libm.so.6 (0x0000003f6c400000)

libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x0000003f76400000)

libc.so.6 => /lib64/libc.so.6 (0x0000003f6c800000)

/lib64/ld-linux-x86-64.so.2 (0x0000003f6c000000)

第一列:程式需要依賴什麼庫

第二列: 系統提供的與程式需要的庫所對應的庫

通過上面的資訊,我們可以得到以下幾個資訊:

通過對比第一列和第二列,我們可以分析程式需要依賴的庫和系統實際提供的,是否相匹配

通過觀察第三列,我們可以知道在當前的庫中的符號在對應的程序的位址空間中的開始位置

如果依賴的某個庫找不到,通過這個命令可以迅速定位問題所在;

原理: ldd不是個可執行程式,而只是個shell指令碼; ldd顯示可執行模組的dependency的工作原理,其實質是通過ld-linux.so(elf動態庫的裝載器)來實現的。ld-linux.so模組會先於executable模組程式工作,並獲得控制權,因此當上述的那些環境變數被設定時,ld-linux.so選擇了顯示可執行模組的dependency。

ldd 檢視程式依賴庫

ldd 作用 用來檢視程式執行所需的共享庫,常用來解決程式因缺少某個庫檔案而不能執行的一些問題。示例 檢視test程式執行所依賴的庫 libstdc so.6 usr lib64 libstdc so.6 0x00000039a7e00000 libm.so.6 lib64 libm.so.6 0x...

Linux 檢視動態庫依賴

檢視動態庫依賴3種方法 1 ldd bin grep linux gate.so.1 0xffffe000 libc.so.6 lib libc.so.6 0xb7eca000 lib ld linux.so.2 0xb801e000 2 ld trace loaded objects 1 bin ...

檢視安卓專案gradle庫依賴,解決依賴庫衝突問題

執行命令 gradlew 模組名 dependencies.gradlew 模組名 dependencies dep.log下面這張圖是我乙個工程裡執行結果的篩選部分.背景 工程編譯報錯 program type already present androidx.versionedparcelabl...