電子產(chǎn)業(yè)一站式賦能平臺

PCB聯(lián)盟網(wǎng)

搜索
查看: 609|回復(fù): 0
收起左側(cè)

【HarmonyOS HiSpark AI Camera試用連載 】用arm-linux-gnueabihf-gcc編譯應(yīng)用程序(沒搞定)

[復(fù)制鏈接]

2607

主題

2607

帖子

7472

積分

高級會(huì)員

Rank: 5Rank: 5

積分
7472
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2020-12-5 23:56:04 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
【HarmonyOS HiSpark AI Camera試用連載 】用arm-linux-gnueabihf-gcc編譯應(yīng)用程序(沒搞定), 突發(fā)奇想,看看能不能用gcc 編譯,于是安裝了一個(gè) arm-linux-gnueabihf-gcc ,嘗試編譯”applications/sample/camera/app” 文件。 編譯過程沒有什么好說的,自然一次成功。把編譯好的文件放在userdata 文件夾下運(yùn)行

圖片1.png (4.28 KB, 下載次數(shù): 0)

下載附件  保存到相冊  

8 小時(shí)前 上傳 當(dāng)然是不能運(yùn)行的。 我們再仔細(xì)研究一下elf 文件的格式組成。

圖片2.png (61.79 KB, 下載次數(shù): 0)

下載附件  保存到相冊  

8 小時(shí)前 上傳 對于我們希望編譯出來可以執(zhí)行的elf ,應(yīng)該看右圖“執(zhí)行視圖”。當(dāng)我們使用 ./XXX 命令執(zhí)行一個(gè)可執(zhí)行的 elf 文件時(shí),動(dòng)態(tài)鏈接器(即加載器)會(huì)以執(zhí)行視圖解析這個(gè)文件,對于這個(gè)文件來說,最重要的就是段表(即 Segment )。 上述錯(cuò)誤提示也是說表的地址錯(cuò)誤了,使用readelf 文件分別查看并比較兩個(gè)文件: (下圖左為clang 編譯,右為 gcc 編譯)。

圖片3.png (130.32 KB, 下載次數(shù): 0)

下載附件  保存到相冊  

8 小時(shí)前 上傳 發(fā)現(xiàn)使用gcc 編譯的文件多了段 .note.ABI-tag 、 .note.gnu.build-i 、 .gnu.version 、 .gnu.version_r ,缺少段 .got.plt 、 .eh_frame_hdr 、 .bss.rel.ro 可以看到,缺少的和多出的字段都不具有X (執(zhí)行)屬性,理論上是不影響 elf 是否可以被執(zhí)行的。 執(zhí)行環(huán)境,out of memory 的原因可能是:

圖片4.png (55.53 KB, 下載次數(shù): 0)

下載附件  保存到相冊  

8 小時(shí)前 上傳 Hi3516DV300 實(shí)際采用芯片的結(jié)構(gòu)為“ARMv7 架構(gòu)”,但采用 gcc 編譯出的版本為 v6 ,導(dǎo)致程序不可使用? 以上只是推測,實(shí)際情況還請大佬們評估。

發(fā)表回復(fù)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則


聯(lián)系客服 關(guān)注微信 下載APP 返回頂部 返回列表