RM新时代网站-首页

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

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

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

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

CHANBAEK ? 來源:大川搬磚 ? 作者:sdc123 ? 2023-08-25 16:17 ? 次閱讀

1. 前言

作為一個(gè)嵌入式開發(fā)人員,交叉編譯是必須進(jìn)行的步驟。那么,如何判斷編譯生成的文件(動態(tài)庫,靜態(tài)庫,可執(zhí)行程序)是否符合目標(biāo)平臺的格式呢?下面分別介紹這 3 種文件的查看方式。

測試環(huán)境:

虛擬機(jī):ubuntu 16.04

目標(biāo)環(huán)境:imx8q,arm64

測試程序:FastDDS

2. 查看可執(zhí)行程序

使用 file 命令。

file DDSHelloWorldExample

結(jié)果:

圖片

3. 查看動態(tài)庫

和可執(zhí)行程序一樣,也使用 file 命令。

file libfastrtps.so.2.3.0

結(jié)果:

圖片

4. 查看靜態(tài)庫

也使用 file 命令?

file libfoonathan_memory-0.7.0.a

結(jié)果:

圖片

這個(gè)結(jié)果證明 file 命令是行不通的。那應(yīng)該怎么做呢?使用 readelf 。

4.1 readelf

readelf 用于顯示 ELF 文件的信息 。我們這里使用其 -h 參數(shù)。

readelf -h libfoonathan_memory-0.7.0.a

結(jié)果( 有意外收獲 ):

圖片

readelf -h 的輸出結(jié)果可以看出靜態(tài)庫是符合 AArch64 平臺的。但是有多行的 Machine: AArch64 。這其實(shí)是靜態(tài)庫中 每一個(gè).o 文件的信息。因此,我們可以使用該命令查看靜態(tài)庫中包含了哪些 .o 文件。

readelf -h libfoonathan_memory-0.7.0.a | grep "File:"

結(jié)果:

圖片

然后,我們使用命令 ar -t 命令查看上述結(jié)果是否正確。

ar -t libfoonathan_memory-0.7.0.a

結(jié)果:

圖片

5. 結(jié)語

其實(shí),動態(tài)庫、靜態(tài)庫和可執(zhí)行程序都可以使用 readelf -h 命令進(jìn)行查看適用的目標(biāo)平臺類型。但是查看動態(tài)庫和靜態(tài)庫的適用平臺信息時(shí)還是 file 命令方便、直觀一些。

我們可以使用 readelfar 命令查看靜態(tài)庫中包含哪些 .o 文件。如果想知道可執(zhí)行程序和動態(tài)庫鏈接了哪些動態(tài)庫,該如何做呢?答案是使用 ldd 命令。請移步至這篇文章。

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

    關(guān)注

    5082

    文章

    19104

    瀏覽量

    304796
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11292

    瀏覽量

    209322
  • 靜態(tài)庫
    +關(guān)注

    關(guān)注

    0

    文章

    21

    瀏覽量

    7426
  • Ubuntu
    +關(guān)注

    關(guān)注

    5

    文章

    563

    瀏覽量

    29703
  • 動態(tài)庫
    +關(guān)注

    關(guān)注

    0

    文章

    17

    瀏覽量

    6222
收藏 人收藏

    評論

    相關(guān)推薦

    Linux操作系統(tǒng)常見文件類型分析

    Linux操作系統(tǒng)常見文件類型分析,壓縮和打包文件,普通文件格式,
    發(fā)表于 01-06 17:00 ?988次閱讀

    查看Linux系統(tǒng)內(nèi)存使用情況的幾種方法

    Linux系統(tǒng)中,內(nèi)存監(jiān)控是優(yōu)化系統(tǒng)性能的關(guān)鍵。本文為你介紹12種方法,幫助你全面掌握Linux系統(tǒng)
    的頭像 發(fā)表于 11-13 09:30 ?1.4w次閱讀
    <b class='flag-5'>查看</b><b class='flag-5'>Linux</b><b class='flag-5'>系統(tǒng)</b>內(nèi)存使用情況的幾種<b class='flag-5'>方法</b>

    linux查看網(wǎng)卡流量的六種方法

    本文介紹了linux查看網(wǎng)卡流量的六種方法,linux系統(tǒng)中使用nload、iftop、io
    發(fā)表于 07-25 06:29

    嵌入式學(xué)習(xí)——ElfBoard ELF1板卡 重新打包文件系統(tǒng)方法

    1.拷貝ELF1開發(fā)板資料包\\\\04-燒寫鏡像\\\\04-0 eMMC鏡像目錄下的rootfs.tar.bz2到開發(fā)環(huán)境的任意目錄,比如/home/elf。 2.創(chuàng)建存放目標(biāo)文件系統(tǒng)
    發(fā)表于 11-06 09:55

    i.MX6ULL——ElfBoard ELF1板卡 windows 與 ubuntu 系統(tǒng)互傳文件方法

    的:內(nèi)核源碼 linux-4.1.15-elf1.tar.bz2、文件系統(tǒng)(本節(jié)以 rootfs.tar.bz2 為例)、命令行測試程序 elf1_cmd_watchdog.c 放到 Windows
    發(fā)表于 12-02 09:27

    Linux文件系統(tǒng)的反刪除方法

    Linux文件系統(tǒng)的反刪除方法 作為一個(gè)多用戶、多任務(wù)的操作系統(tǒng),Linux
    發(fā)表于 03-29 10:39 ?720次閱讀

    嵌入式bin文件elf文件重點(diǎn)

    執(zhí)行raw binary很簡單,只需要將程序加載到其起始地址,就可以執(zhí)行; 執(zhí)行ELF程序則需要一個(gè)ELF Loader。 現(xiàn)在知道了吧,uboot和Linux kernel啟動的時(shí)候是沒有E
    的頭像 發(fā)表于 05-15 11:04 ?9206次閱讀
    嵌入式bin<b class='flag-5'>文件</b>和<b class='flag-5'>elf</b><b class='flag-5'>文件</b>重點(diǎn)

    簡單介紹一LinuxELF格式文件

    ELF(Executable and Linkable Format)即可執(zhí)行連接文件格式,是一種比較復(fù)雜的文件格式,但其應(yīng)用廣泛。
    發(fā)表于 04-27 19:09 ?2.7w次閱讀
    簡單介紹一<b class='flag-5'>下</b><b class='flag-5'>Linux</b>中<b class='flag-5'>ELF</b>格式<b class='flag-5'>文件</b>

    Linux可執(zhí)行文件格式

    Linux支持的可執(zhí)行文件主要有:Coff,elf,flat,類似Windows的.exeCoff文件格式? Common Object File Format,最早與
    發(fā)表于 04-02 14:46 ?1581次閱讀

    使用Linux命令lsof查看進(jìn)程打開和查看文件的說明

    linux命令 — lsof 查看進(jìn)程打開那些文件 或者 查看文件給那個(gè)進(jìn)程使用對調(diào)試文件有很好
    發(fā)表于 10-28 08:00 ?0次下載

    虛擬機(jī):Linux查看tar包文件內(nèi)容的方法

    虛擬機(jī):Linux查看tar包文件內(nèi)容的方法
    的頭像 發(fā)表于 06-22 16:49 ?6722次閱讀

    Linux系統(tǒng)如何解析ELF文件

    也就是說,掌握了 ELF 文件的結(jié)構(gòu)和內(nèi)容,是理解編譯、鏈接和程序執(zhí)行的基礎(chǔ)。
    的頭像 發(fā)表于 04-10 16:36 ?3378次閱讀

    如何在Linux查看隱藏文件

    在windows可以查看隱藏的文件。在Linux中也可以查看隱藏文件且非常容易。要查看隱藏
    的頭像 發(fā)表于 01-04 17:31 ?1.6w次閱讀

    Linux系統(tǒng)中的10個(gè)常用的文本查看命令

    當(dāng)你需要查看Linux系統(tǒng)中的文本文件時(shí),使用文本編輯器可能會比較繁瑣,特別是當(dāng)你只需要查看文件
    的頭像 發(fā)表于 06-24 11:44 ?1.1w次閱讀

    Linux服務(wù)器性能查看方法

    Linux服務(wù)器性能查看系統(tǒng)管理員和開發(fā)人員在日常工作中經(jīng)常需要進(jìn)行的任務(wù),以確保系統(tǒng)穩(wěn)定運(yùn)行并優(yōu)化資源使用。以下將詳細(xì)介紹多種Linux
    的頭像 發(fā)表于 09-02 11:15 ?1043次閱讀
    RM新时代网站-首页