日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
linux查找依賴庫命令 linux檢查依賴包

Linux可執(zhí)二進制行文件和庫依賴查看方法

1、查看依賴庫

創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比嵐皋網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式嵐皋網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋嵐皋地區(qū)。費用合理售后完善,十年實體公司更值得信賴。

1.1、查看可執(zhí)行文件依賴的庫有哪些

舉例,查看常用的ls工具,依賴哪些庫:

1.2、查看動態(tài)庫,依賴的庫有哪些

舉例,查看libcap依賴的庫有哪些:

linuxqt程序依賴庫位置

操作如下:

1、從可運行程序的文件中拿出可執(zhí)行文件。

2、終端下使用ldd命令查看需要的連接庫。

3、把ldd查詢到的所有需要的庫導(dǎo)出。

4、編寫.sh文檔。

5、把所用到的庫,可執(zhí)行文件,.sh文件放到同一目錄下。

6、終端中進入這一目錄,輸入:chmod+xtest.sh。

7、執(zhí)行程序點擊.sh文件或終端輸入:./test.sh。

ldd查看動態(tài)依賴庫

ldd命令用于輸出程序或者庫文件所依賴的共享庫列表。

語法

選項

參數(shù)

文件:指定可執(zhí)行程序或者文庫。

ldd原理

首先,ldd不是一個可執(zhí)行程序,而只是一個shell腳本。

ldd能夠顯示可執(zhí)行模塊的dependency,其原理是通過設(shè)置一系列的環(huán)境變量,如下: LD_TRACE_LOADED_OBJECTS、LD_WARN、LD_BIN_NOW、LD_LIBRARY_VERSION、LD_VERBOSE 等。當 LD_TRACE_LOADED_OBJECTS 環(huán)境變量不為空時,任何可執(zhí)行程序在運行時,它都只會顯示模塊的dependency,而程序并不真正執(zhí)行。測試結(jié)果如下:

ldd 顯示可執(zhí)行模塊的dependency的工作原理,其實質(zhì)是通過ld-linux.so(elf動態(tài)庫的裝載器)來實現(xiàn)的。ld-linux.so模塊會先于executable模塊程序工作,并獲得控制權(quán)。因此當上述的那些變量設(shè)置時,ld-linux.so選擇了顯示可執(zhí)行模塊的dependency。

ld-linux.so讀取可執(zhí)行程序的頭信息,這些信息采用 Executable and Linking Format 或者(ELF)格式。 它們通過這些消息,來確定哪些庫是必須的,以及哪些庫需要加載。 然后執(zhí)行動態(tài)鏈接,把可執(zhí)行程序當中所有的地址指針與需要加載的庫聯(lián)系起來, 這樣程序就可以運行了。

實際上可以直接執(zhí)行l(wèi)d-linux.so模塊,如: /lib64/ld-linux-x86-64.so.2 --list ./a.out (這相當于 ldd a.out )。

示例

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

linux源碼包怎么查看依賴關(guān)系

一、可執(zhí)行文件/二進制文件依賴共享庫

ldd命令用來查看可執(zhí)行文件依賴的共享庫文件。

$ ldd --help

Usage: ldd [OPTION]... FILE...

--help print this help and exit

--version print version information and exit

-d, --data-relocs process data relocations

-r, --function-relocs process data and function relocations

-u, --unused print unused direct dependencies

-v, --verbose print all information

示例:

$ ldd helloworld

二、共享庫依賴共享庫關(guān)系

上面的ldd命令無法查看共享庫的依賴關(guān)系,因為共享庫本身并不是可執(zhí)行文件,我們可以使用

objdump -x libhelloworld.so | grep NEEDED

其中,libhelloworld.so是你的庫名稱。

附:

readelf命令用于讀取ELF Header信息


網(wǎng)頁名稱:linux查找依賴庫命令 linux檢查依賴包
文章URL:http://www.dlmjj.cn/article/dopddhj.html