欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何查看linux程序共享庫(kù)呢?

嵌入式小生 ? 來(lái)源:嵌入式小生 ? 2023-08-28 09:11 ? 次閱讀

一、開(kāi)篇

linux系統(tǒng)中,程序通常需要依賴(lài)于外部庫(kù)來(lái)正常工作。這些庫(kù)可以直接編譯到程序中,也可以從共享庫(kù)池中加載。使用共享庫(kù)有助于減小程序大小,簡(jiǎn)化開(kāi)發(fā)和打包。在linux中,共享庫(kù)通常存儲(chǔ)在/lib或/usr/lib目錄下。

不同的linux發(fā)行版甚至同一發(fā)行版的版本可能使用不同的庫(kù),從而導(dǎo)致一個(gè)發(fā)行版編譯的程序在另一個(gè)發(fā)行版上運(yùn)行出現(xiàn)故障。當(dāng)系統(tǒng)中缺少所需庫(kù)時(shí),這時(shí)可能會(huì)遇到錯(cuò)誤。在嵌入式linux環(huán)境中,庫(kù)文件更是非常關(guān)鍵,因?yàn)榍度胧絣inux中硬件環(huán)境往往具有嚴(yán)苛的限制,太多的庫(kù)將無(wú)法完整放入對(duì)應(yīng)的硬件環(huán)境下,所以重新組建linux下的運(yùn)行庫(kù)在嵌入式linux設(shè)計(jì)中是重要的一環(huán)操作。

要解決共享庫(kù)加載的問(wèn)題,我們可以使用一些工具和命令來(lái)確定程序所依賴(lài)的共享庫(kù),本文將討論實(shí)現(xiàn)這一目標(biāo)的幾種方法。

二、ldd命令

ldd命令用于打印出共享對(duì)象的依賴(lài)。語(yǔ)法如下:

ldd[選項(xiàng)]文件

可選的參數(shù)如下:

--help印出這份說(shuō)明然后離開(kāi)
--version印出版本信息然后離開(kāi)
-d,--data-relocs進(jìn)程數(shù)據(jù)重尋址
-r,--function-relocs進(jìn)程數(shù)據(jù)和函數(shù)重尋址
-u,--unused印出未使用的直接依賴(lài)關(guān)系
-v,--verbose印出所有信息

例如:

f4d7eef4-4538-11ee-a2ef-92fbcf53809c.png

使用-v可查看更詳細(xì)的信息:

f50b460a-4538-11ee-a2ef-92fbcf53809c.png

注意,使用ldd命令時(shí)可能會(huì)導(dǎo)致程序運(yùn)行,因此不要在不受信任的可執(zhí)行文件上使用ldd。

三、readelf命令

readelf命令是一個(gè)強(qiáng)大的命令,用于顯示ELF文件的信息,可使用該命令查看共享庫(kù)的依賴(lài),方法如下:

readelf--dynamic./app|grepNEEDED

例如下列命令用于查看/usr/bin/dir的依賴(lài)庫(kù):

f53cbdca-4538-11ee-a2ef-92fbcf53809c.png

四、objdump命令

objdump命令在開(kāi)發(fā)中也是一個(gè)較為常用的命令,且功能強(qiáng)大,用于顯示對(duì)象文件中的信息,可以使用該命令來(lái)查看共享庫(kù)的依賴(lài),方法如下:

objdump-p/path/to/program|grepNEEDED

例如下列命令用于查看/usr/bin/dir的依賴(lài)庫(kù):

f5561c8e-4538-11ee-a2ef-92fbcf53809c.png

五、pldd命令

f56d723a-4538-11ee-a2ef-92fbcf53809c.png

六、/proc//maps

通過(guò)檢查/proc//maps來(lái)獲知運(yùn)行進(jìn)程的庫(kù)需求:

awk'/.so/{print$6}'/proc/$(pgrepbash|head-n1)/maps|sort-u

例如:

f59a249c-4538-11ee-a2ef-92fbcf53809c.png

上述語(yǔ)句中pgrep bash | head -n1表示獲取第一個(gè)名為bash的進(jìn)程的ID。

七、使用pmap收集程序的共享庫(kù)需求

pmap$(pgrepXorg|head-n1)|grep.so|awk'{print$4}'|sort-u

上述語(yǔ)句中pgrep bash | head -n1表示獲取第一個(gè)名為bash的進(jìn)程的ID。

八、使用lsof工具檢查正在運(yùn)行的進(jìn)程的共享庫(kù)需求

使用方法:

lsof-p$(pgrepbash|head-n1)|grepmem

上述語(yǔ)句中pgrep bash | head -n1表示獲取第一個(gè)名為bash的進(jìn)程的ID。

九、總結(jié)

在發(fā)行版的linux系統(tǒng)中,上述命令幾乎都可以使用來(lái)查看動(dòng)態(tài)庫(kù)的依賴(lài)關(guān)系,在嵌入式linux系統(tǒng)中,可能由于網(wǎng)絡(luò)環(huán)境的限制、運(yùn)行架構(gòu)的不同、構(gòu)建的文件系統(tǒng)中不存在對(duì)應(yīng)的命令程序,從而導(dǎo)致上述一些命令無(wú)法運(yùn)行或者找不到運(yùn)行的命令,這時(shí)候常使用readelf和objdump查看動(dòng)態(tài)庫(kù)的依賴(lài)關(guān)系,因?yàn)樵诮徊婢幾g構(gòu)建工具鏈中一般會(huì)包含readelf和objdump命令的變體。






審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5095

    文章

    19189

    瀏覽量

    307958
  • Linux系統(tǒng)
    +關(guān)注

    關(guān)注

    4

    文章

    596

    瀏覽量

    27524
  • ELF文件
    +關(guān)注

    關(guān)注

    0

    文章

    14

    瀏覽量

    7177
  • Bash
    +關(guān)注

    關(guān)注

    0

    文章

    57

    瀏覽量

    10209

原文標(biāo)題:八種查看linux程序共享庫(kù)的方法,了解多少?

文章出處:【微信號(hào):嵌入式小生,微信公眾號(hào):嵌入式小生】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Linux系統(tǒng)下查看elf文件的方法

    作為一個(gè)嵌入式開(kāi)發(fā)人員,交叉編譯是必須進(jìn)行的步驟。那么,如何判斷編譯生成的文件(動(dòng)態(tài)庫(kù),靜態(tài)庫(kù),可執(zhí)行程序)是否符合目標(biāo)平臺(tái)的格式?下面分別介紹這 3 種文件的
    的頭像 發(fā)表于 08-25 16:17 ?3114次閱讀
    <b class='flag-5'>Linux</b>系統(tǒng)下<b class='flag-5'>查看</b>elf文件的方法

    linux共享庫(kù)下,調(diào)用共享庫(kù)函數(shù)時(shí),程序卡死在函數(shù)中的pid=fork()這里的原因?

    linux共享庫(kù)下,調(diào)用共享庫(kù)函數(shù)時(shí),程序卡死在函數(shù)中的pid=fork()這里,來(lái)個(gè)大佬指導(dǎo)指導(dǎo)原因...
    發(fā)表于 06-20 06:55

    Linux系統(tǒng)共享庫(kù)編程

    一、說(shuō)明 類(lèi)似Windows系統(tǒng)中的動(dòng)態(tài)鏈接庫(kù),Linux中也有相應(yīng)的共享庫(kù)用以支持代碼的復(fù)用。Windows中為*.dll,而Linux
    發(fā)表于 09-13 16:49 ?24次下載

    Linux下靜態(tài)庫(kù)和動(dòng)態(tài)庫(kù)共享庫(kù))的制作與使用

    Linux下靜態(tài)庫(kù)和動(dòng)態(tài)庫(kù)共享庫(kù))的制作與使用Linux
    發(fā)表于 07-09 14:39 ?1194次閱讀

    linux靜態(tài)庫(kù)和動(dòng)態(tài)庫(kù)分析

    的二進(jìn)制是不兼容的。 本文僅限于介紹linux下的庫(kù)。 2.庫(kù)的種類(lèi) linux下的庫(kù)有兩種:靜態(tài)庫(kù)
    發(fā)表于 11-02 10:12 ?1次下載

    你知道linux 靜態(tài)庫(kù)共享庫(kù)?

    靜態(tài)鏈接庫(kù)和動(dòng)態(tài)鏈接庫(kù)的區(qū)別在于,主程序在運(yùn)行前,靜態(tài)鏈接庫(kù)的鏈接固定寫(xiě)入在程序中,而動(dòng)態(tài)鏈接庫(kù)
    發(fā)表于 04-26 16:46 ?2928次閱讀

    linux共享程序庫(kù)剖析

    共享程序庫(kù)通過(guò)版本號(hào)來(lái)完成對(duì)應(yīng)用程序所使用的程序庫(kù)的升級(jí),同時(shí)保留了對(duì)原有應(yīng)用程序的兼容。本文將討論此方法的實(shí)際內(nèi)幕,以及在
    發(fā)表于 04-02 14:35 ?318次閱讀

    Linux下C語(yǔ)言共享庫(kù)的位置無(wú)關(guān)實(shí)現(xiàn)原理分析

    如何創(chuàng)建一個(gè)*可執(zhí)行*的共享庫(kù) 一文談完了如何讓共享庫(kù)可直接執(zhí)行,本文再來(lái)談?wù)?b class='flag-5'>共享庫(kù)的運(yùn)行時(shí)位置
    的頭像 發(fā)表于 11-28 16:20 ?3115次閱讀

    如何查看linux端口

    有時(shí)我們需要知道系統(tǒng)中某個(gè)端口的占用情況,以便于解除程序對(duì)端口的占用,那么怎么查看Linux系統(tǒng)中的端口情況?
    發(fā)表于 05-17 09:45 ?1866次閱讀

    Linux服務(wù)的內(nèi)容如何查看

     ps是進(jìn)程查看命令,netstat是端口查看命令,在Linux系統(tǒng)中,服務(wù)一定是有進(jìn)程的,所以使用ps命令可以查看服務(wù)運(yùn)行情況,另外,Linux
    發(fā)表于 05-20 09:09 ?792次閱讀
    <b class='flag-5'>Linux</b>服務(wù)的內(nèi)容如何<b class='flag-5'>查看</b>

    ldd命令:用于打印程序或者共享庫(kù)文件所依賴(lài)的共享庫(kù)列表

    1.命令簡(jiǎn)介 ldd 命令用于打印程序或者共享庫(kù)文件所依賴(lài)的共享庫(kù)列表。注意,ldd 本身不是一個(gè)二進(jìn)制
    的頭像 發(fā)表于 02-02 11:37 ?2133次閱讀

    C++基礎(chǔ)語(yǔ)法知識(shí)之鏈接裝載庫(kù)Linux共享庫(kù)

    Linux共享庫(kù)(Shared Library) Linux 下的共享庫(kù)就是普通的 ELF
    的頭像 發(fā)表于 11-01 10:15 ?2951次閱讀

    Linux程序被Killed,查看原因

    Linux程序被Killed,查看原因
    的頭像 發(fā)表于 01-11 10:17 ?2303次閱讀

    Linux中的靜態(tài)庫(kù)共享庫(kù)

    庫(kù)是一個(gè)二進(jìn)制文件,包含的代碼可被程序調(diào)用。例如標(biāo)準(zhǔn)C庫(kù)、數(shù)學(xué)庫(kù)、線程庫(kù)等等。庫(kù)有源碼,可下載后
    的頭像 發(fā)表于 05-10 09:34 ?1097次閱讀

    linux查看weblogic進(jìn)程

    Linux操作系統(tǒng)中,WebLogic是一種常用的Java應(yīng)用服務(wù)器,用于部署和管理企業(yè)級(jí)Java應(yīng)用程序。為了確保WebLogic服務(wù)器正常運(yùn)行,有時(shí)我們需要查看WebLogic進(jìn)程以了解其狀態(tài)
    的頭像 發(fā)表于 12-05 16:07 ?2025次閱讀