衡阳派盒市场营销有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

ldd命令:用于打印程序或者共享庫文件所依賴的共享庫列表

Linux愛好者 ? 來源:Linux愛好者 ? 作者:戀貓大鯉魚 ? 2021-02-02 11:37 ? 次閱讀

1.命令簡介

ldd 命令用于打印程序或者共享庫文件所依賴的共享庫列表。注意,ldd 本身不是一個二進制程序,而是一個 Shell 腳本,使用文本編輯器 vim 可以查看其內容,具體目錄可以使用 which 命令查看:

whichldd
/usr/bin/ldd

我們知道,Linux 的動態庫裝載器 ld-linux.so 模塊會先于 executable 模塊工作,并獲得控制權,ld-linux.so 會通過系統環境變量的設置,選擇只顯示可執行模塊的dependency,而不運行可執行模塊。相關環境變量有:

ldd 默認開啟的環境變量是:LD_TRACE_LOADED_OBJECTS=1。也就是說,LD_TRACE_LOADED_OBJECTS為必要環境變量,其他環境變量的設置是可選的。其他的變量的設置與ldd命令選項的對應關系如下:

-d,--data-relocs->LD_WARN=yes
-r,--function-relocs->LD_WARN和LD_BIND_NOW=yes
-u,--unused->LD_DEBUG="unused"
-v,--verbose->LD_VERBOSE=yes

比如設置LD_TRACE_LOADED_OBJECTS環境變量不為空時,任何可執行程序在運行時,都會只顯示依賴的動態庫,程序并不真正地執行。測試如下:

exportLD_TRACE_LOADED_OBJECTS=1
ls
linux-vdso.so.1=>(0x00007ffd1d3cf000)
/$LIB/libonion.so=>/lib64/libonion.so(0x00007fbbe7162000)
libselinux.so.1=>/lib64/libselinux.so.1(0x00007fbbe6e2e000)
libcap.so.2=>/lib64/libcap.so.2(0x00007fbbe6c29000)
libacl.so.1=>/lib64/libacl.so.1(0x00007fbbe6a20000)
libc.so.6=>/lib64/libc.so.6(0x00007fbbe665e000)
libdl.so.2=>/lib64/libdl.so.2(0x00007fbbe645a000)
libpthread.so.0=>/lib64/libpthread.so.0(0x00007fbbe623e000)
libpcre.so.1=>/lib64/libpcre.so.1(0x00007fbbe5fdd000)
liblzma.so.5=>/lib64/liblzma.so.5(0x00007fbbe5db8000)
/lib64/ld-linux-x86-64.so.2(0x00007fbbe7053000)
libattr.so.1=>/lib64/libattr.so.1(0x00007fbbe5bb3000)

撤銷該環境變量,ls 即可恢復正常使用:

unsetLD_TRACE_LOADED_OBJECTS
ls
ChangelogChangelog.lndablelvtxt.txt

由此可見,ldd 命令其實是通過設置 ld-linux.so 依賴的環境變量來影響 ld-linux.so的工作方式,使得可執行模塊加載時顯示其依賴的動態庫。實際上可以直接執行 ld-linux.so 模塊,如/lib/ld-linux.so.2 --list program,來達到命令ldd program的效果。

2.命令格式

ldd[OPTIONS]

其中[OPTIONS]為可選的命令選項,...為必填的程序或者共享庫文件列表。

3.選項說明

--version:打印ldd版本號
-v, --verbose:詳細信息模式,打印所有相關信息
-u, --unused:打印未使用的直接依賴
-d, --data-relocs:執行重定位和報告任何丟失的對象
-r,--function-relocs:執行數據對象和函數的重定位,并且報告任何丟失的對象和函數。(只對ELF格式文件有效)
--help:顯示幫助信息

4.示例說明

(1)顯示可執行文件依賴的動態鏈接庫。

ldd/usr/bin/ls
linux-vdso.so.1=>(0x00007ffd90514000)
/$LIB/libonion.so=>/lib64/libonion.so(0x00007f294ade8000)
libselinux.so.1=>/lib64/libselinux.so.1(0x00007f294aab4000)
libcap.so.2=>/lib64/libcap.so.2(0x00007f294a8af000)
libacl.so.1=>/lib64/libacl.so.1(0x00007f294a6a6000)
libc.so.6=>/lib64/libc.so.6(0x00007f294a2e4000)
libdl.so.2=>/lib64/libdl.so.2(0x00007f294a0e0000)
libpthread.so.0=>/lib64/libpthread.so.0(0x00007f2949ec4000)
libpcre.so.1=>/lib64/libpcre.so.1(0x00007f2949c63000)
liblzma.so.5=>/lib64/liblzma.so.5(0x00007f2949a3e000)
/lib64/ld-linux-x86-64.so.2(0x00007f294acd9000)
libattr.so.1=>/lib64/libattr.so.1(0x00007f2949839000)

參考文獻

[1] ldd manual
[2] Linux命令大全.ldd命令
[3] 博客園.ldd命令

責任編輯:xj

原文標題:每天一個 Linux 命令(103):ldd 命令

文章出處:【微信公眾號:Linux愛好者】歡迎添加關注!文章轉載請注明出處。


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Linux
    +關注

    關注

    87

    文章

    11345

    瀏覽量

    210402
  • 命令
    +關注

    關注

    5

    文章

    696

    瀏覽量

    22112
  • Shell腳本
    +關注

    關注

    0

    文章

    36

    瀏覽量

    8023

原文標題:每天一個 Linux 命令(103):ldd 命令

文章出處:【微信號:LinuxHub,微信公眾號:Linux愛好者】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    hyper-v共享,hyper-v共享:實現主機與虛擬機之間高效文件共享的最佳實踐

    在日常工作中,我們常常需要處理大量的文件和數據,這些重復性任務不僅耗時耗力,還容易因疲勞而導致錯誤。幸運的是,批量管理工具的出現為這一問題提供了高效的解決方案。今天就為大家介紹hyper-v共享
    的頭像 發表于 01-24 14:23 ?177次閱讀
    hyper-v<b class='flag-5'>共享</b>,hyper-v<b class='flag-5'>共享</b>:實現主機與虛擬機之間高效<b class='flag-5'>文件</b><b class='flag-5'>共享</b>的最佳實踐

    騰訊ima升級知識功能,上線小程序實現共享與便捷問答

    近日,騰訊旗下的AI智能工作臺ima.copilot(簡稱ima)迎來了知識功能的重大升級。此次升級不僅增加了“共享知識”的新能力,還正式上線了“ima知識”小
    的頭像 發表于 12-31 15:32 ?448次閱讀

    如何使用cmp進行數據管理的技巧

    使用 cmp 命令進行數據管理可能不是最直觀的方法,因為 cmp 通常用于比較兩個文件是否相同。然而,如果你的意圖是使用 cmp 來檢查數據庫文件
    的頭像 發表于 12-17 09:31 ?180次閱讀

    數據數據恢復—MYSQL數據ibdata1文件損壞的數據恢復案例

    mysql數據故障: mysql數據庫文件ibdata1、MYI、MYD損壞。 故障表現:1、數據無法進行查詢等操作;2、使用mysqlcheck和myisamchk無法修復數據
    的頭像 發表于 12-09 11:05 ?224次閱讀

    數據數據恢復—通過拼接數據碎片恢復SQLserver數據

    一個運行在存儲上的SQLServer數據,有1000多個文件,大小幾十TB。數據每10天生成一個NDF文件,每個NDF幾百GB大小。數據
    的頭像 發表于 10-31 13:21 ?336次閱讀
    數據<b class='flag-5'>庫</b>數據恢復—通過拼接數據<b class='flag-5'>庫</b>碎片恢復SQLserver數據<b class='flag-5'>庫</b>

    在bootloader和應用程序之間共享FEE塊

    電子發燒友網站提供《在bootloader和應用程序之間共享FEE塊.pdf》資料免費下載
    發表于 10-10 09:18 ?0次下載
    在bootloader和應用<b class='flag-5'>程序</b>之間<b class='flag-5'>共享</b>FEE塊

    數據數據恢復—SQL Server數據出現823錯誤的數據恢復案例

    SQL Server數據故障: SQL Server附加數據出現錯誤823,附加數據失敗。數據沒有備份,無法通過備份恢復數據
    的頭像 發表于 09-20 11:46 ?410次閱讀
    數據<b class='flag-5'>庫</b>數據恢復—SQL Server數據<b class='flag-5'>庫</b>出現823錯誤的數據恢復案例

    用于具有AES硬件加密功能的TM4C129器件的共享密鑰引導加載程序

    電子發燒友網站提供《用于具有AES硬件加密功能的TM4C129器件的共享密鑰引導加載程序.pdf》資料免費下載
    發表于 08-27 09:56 ?1次下載
    <b class='flag-5'>用于</b>具有AES硬件加密功能的TM4C129器件的<b class='flag-5'>共享</b>密鑰引導加載<b class='flag-5'>程序</b>

    PADS-3D文件

    PADS-3D文件
    發表于 08-15 17:20 ?28次下載

    Microbit文件

    Microbit ?文件
    發表于 08-07 14:29 ?0次下載

    FSP啟動文件說明

    FSP啟動文件說明
    的頭像 發表于 06-04 08:06 ?552次閱讀
    FSP<b class='flag-5'>庫</b>啟動<b class='flag-5'>文件</b>說明

    Linux系統中共享文件找不到怎么辦

    ? 1.首先輸下面命令查看是否真的設置成功共享文件夾 vmware-hgfsclient 如果確實已經設置過共享文件夾將輸出window下
    的頭像 發表于 05-11 08:49 ?942次閱讀
    Linux系統中<b class='flag-5'>共享</b><b class='flag-5'>文件</b>找不到怎么辦

    HarmonyOS開發:【基于命令行(安裝和工具集)】

    使用命令行進行設備開發時,可以通過以下步驟安裝編譯OpenHarmony需要的和工具。
    的頭像 發表于 04-25 21:03 ?482次閱讀
    HarmonyOS開發:【基于<b class='flag-5'>命令</b>行(安裝<b class='flag-5'>庫</b>和工具集)】

    Linux系統共享文件缺失的解決策略

    如果確實已經設置過共享文件夾將輸出window下共享文件夾名字
    的頭像 發表于 04-15 10:25 ?1035次閱讀
    Linux系統<b class='flag-5'>共享</b><b class='flag-5'>文件</b>缺失的解決策略

    鴻蒙開發學習:【OpenHarmony HAR】

    OpenHarmony js/ts三方使用的是OpenHarmony靜態共享包,即HAR(Harmony Archive),可以包含js/ts代碼、c++、資源和配置文件。通過HA
    的頭像 發表于 03-18 16:27 ?804次閱讀
    皇冠网百家乐官网阿| 浮梁县| 香港六合彩大全| 金宝博网站| 千亿国际| 缅甸百家乐官网论坛| 成安县| 百家乐官网手机软件| 皇家娱乐城| 大发888 894| 香港六合彩开奖号码| 永平县| 威斯汀百家乐官网的玩法技巧和规则 | 百家乐官网是片人的吗| 德州百家乐官网21点桌| 立博百家乐的玩法技巧和规则| 南溪县| 24卦| 大发888网站是多少呢| 玩百家乐官网优博娱乐城| 百家乐下载免费软件| 大发888大法8668| 百家乐官网六合彩3535| 百家乐透视牌靴价格| 明陞M88娱乐城| 足球百家乐官网投注网出租| 百家乐赌博论坛在线| 万年县| 怎么玩百家乐能赢钱| 伟德亚洲| 网上的百家乐官网怎么才能赢| 全讯网365| 历史百家乐官网路单图| 狮威百家乐娱乐| 百家乐官网透视用设备| 金盾百家乐网址| 通河县| 百家乐轮盘桌| 蚌埠市| 百家乐园百利宫娱乐城怎么样百家乐园百利宫娱乐城如何 | 临澧县|