1. 前言
作為一個(gè)嵌入式開(kāi)發(fā)人員,交叉編譯是必須進(jìn)行的步驟。那么,如何判斷編譯生成的文件(動(dòng)態(tài)庫(kù),靜態(tài)庫(kù),可執(zhí)行程序)是否符合目標(biāo)平臺(tái)的格式呢?下面分別介紹這 3 種文件的查看方式。
測(cè)試環(huán)境:
虛擬機(jī):ubuntu 16.04
測(cè)試程序:FastDDS
2. 查看可執(zhí)行程序
使用 file
命令。
file DDSHelloWorldExample
結(jié)果:
3. 查看動(dòng)態(tài)庫(kù)
和可執(zhí)行程序一樣,也使用 file
命令。
file libfastrtps.so.2.3.0
結(jié)果:
4. 查看靜態(tài)庫(kù)
也使用 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)庫(kù)是符合 AArch64 平臺(tái)的。但是有多行的 Machine: AArch64 。這其實(shí)是靜態(tài)庫(kù)中 每一個(gè).o 文件的信息。因此,我們可以使用該命令查看靜態(tài)庫(kù)中包含了哪些 .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é)語(yǔ)
其實(shí),動(dòng)態(tài)庫(kù)、靜態(tài)庫(kù)和可執(zhí)行程序都可以使用 readelf -h
命令進(jìn)行查看適用的目標(biāo)平臺(tái)類型。但是查看動(dòng)態(tài)庫(kù)和靜態(tài)庫(kù)的適用平臺(tái)信息時(shí)還是 file
命令方便、直觀一些。
我們可以使用 readelf
和 ar
命令查看靜態(tài)庫(kù)中包含哪些 .o 文件。如果想知道可執(zhí)行程序和動(dòng)態(tài)庫(kù)鏈接了哪些動(dòng)態(tài)庫(kù),該如何做呢?答案是使用 ldd 命令。請(qǐng)移步至這篇文章。
-
嵌入式
+關(guān)注
關(guān)注
5095文章
19189瀏覽量
307965 -
Linux
+關(guān)注
關(guān)注
87文章
11351瀏覽量
210497 -
靜態(tài)庫(kù)
+關(guān)注
關(guān)注
0文章
21瀏覽量
7487 -
Ubuntu
+關(guān)注
關(guān)注
5文章
566瀏覽量
30062 -
動(dòng)態(tài)庫(kù)
+關(guān)注
關(guān)注
0文章
17瀏覽量
6272
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
Linux操作系統(tǒng)下常見(jiàn)文件類型分析
查看Linux系統(tǒng)內(nèi)存使用情況的幾種方法
![<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>](https://file1.elecfans.com/web2/M00/AD/DE/wKgaomVRfNaATW4hAAA7_535rrs293.png)
linux下查看網(wǎng)卡流量的六種方法
嵌入式學(xué)習(xí)——ElfBoard ELF1板卡 重新打包文件系統(tǒng)的方法
i.MX6ULL——ElfBoard ELF1板卡 windows 與 ubuntu 系統(tǒng)互傳文件 的方法
Linux文件系統(tǒng)的反刪除方法
嵌入式bin文件和elf文件重點(diǎn)
![嵌入式bin<b class='flag-5'>文件</b>和<b class='flag-5'>elf</b><b class='flag-5'>文件</b>重點(diǎn)](https://file.elecfans.com/web1/M00/50/BA/o4YBAFr6ToCARxiPAAAWD2jvLWA584.png)
簡(jiǎn)單介紹一下Linux中ELF格式文件
![簡(jiǎn)單介紹一<b class='flag-5'>下</b><b class='flag-5'>Linux</b>中<b class='flag-5'>ELF</b>格式<b class='flag-5'>文件</b>](https://file.elecfans.com/web1/M00/8F/F9/pIYBAFzBlTyAA2ZTAABmwdXPIS0568.png)
評(píng)論