曰本美女∴一区二区特级A级黄色大片, 国产亚洲精品美女久久久久久2025, 页岩实心砖-高密市宏伟建材有限公司, 午夜小视频在线观看欧美日韩手机在线,国产人妻奶水一区二区,国产玉足,妺妺窝人体色WWW网站孕妇,色综合天天综合网中文伊,成人在线麻豆网观看

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

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

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

嵌入式開發(fā)中的交叉編譯詳解

嵌入式攻城獅 ? 來源:嵌入式攻城獅 ? 2023-12-01 13:24 ? 次閱讀

嵌入式開發(fā)中,經(jīng)常會遇到目標(biāo)平臺資源貧乏,無法運行需要的編譯器。亦或是目標(biāo)平臺上不允許或不能夠安裝需要的編譯器。這時候就需要使用交叉編譯了。

交叉編譯

本地編譯:在當(dāng)前目標(biāo)平臺下,編譯出來的程序,放到當(dāng)前平臺下,就可以運行的

交叉編譯:在一種平臺上編譯,編譯出來的程序,放到別的平臺上運行(編譯和運行環(huán)境不一樣,屬于交叉的)

這里所謂的平臺,實際上包含兩個概念:體系結(jié)構(gòu)操作系統(tǒng)。同一體系結(jié)構(gòu)可以運行不同的操作系統(tǒng),同一操作系統(tǒng)也可以在不同的體系結(jié)構(gòu)上運行。

比如x86 Linux平臺,實際上是Intel x86體系結(jié)構(gòu)和Linux for x86操作系統(tǒng)的統(tǒng)稱。

再比如x86 WinNT平臺,實際上是Intel x86體系結(jié)構(gòu)和Windows NT for x86操作系統(tǒng)的統(tǒng)稱。

交叉編譯是一個和本地編譯,相對應(yīng)的概念。主要和嵌入式開發(fā)有關(guān),由于嵌入式系統(tǒng)中的各種資源相對有限,只夠嵌入式系統(tǒng)運行的,沒太多剩余的資源,所以很難進行直接的本地編譯。

交叉編譯工具鏈

編譯過程是按照不同的子功能,依照先后順序組成的一個復(fù)雜的流程,如下圖:

wKgaomVpbiGAMZPPAAHkqAqs3yY353.png

編譯過程包括了預(yù)處理、編譯、匯編、鏈接等功能。每個子功能都是一個單獨的工具來實現(xiàn),它們合在一起形成了一個完整的工具集。

同時編譯過程又是一個有先后順序的流程,牽涉到工具的使用順序,每個工具按照先后關(guān)系串聯(lián)在一起,形成了一個編譯工具鏈。

交叉編譯工具鏈就是為了編譯跨平臺體系結(jié)構(gòu)的程序代碼而形成的由多個子工具構(gòu)成的一套完整的工具集。

同時,它隱藏了預(yù)處理、編譯、匯編、鏈接等細(xì)節(jié),當(dāng)我們指定了源文件(.c)時,它會自動按照編譯流程調(diào)用不同的子工具,自動生成最終的二進制程序映像(.bin)。

交叉編譯工具鏈命名規(guī)則

在使用交叉編譯鏈時,常常會看到下面這樣的名字:

arm-linux-gnueabihf-
arm-none-linux-gnueabi-
arm-cortex_a8-linux-gnueabi-
mips-malta-linux-gnu-

這些交叉編譯鏈的命名通常會遵循一定的規(guī)則:arch-vender-os-abi,各字段說明如下:

arch:目標(biāo)cpu架構(gòu),比如mips、arm、x86、riscv等,通常不會省略

vendor:提供此編譯工具鏈的廠商名稱或特定信息,標(biāo)識信息,沒有實際意義,可以為none、cross、unknow或是直接省略

os:目標(biāo)設(shè)備上運行的操作系統(tǒng),常見的有l(wèi)inux、none(裸機)等

abi:應(yīng)用程序二進制接口,交叉編譯鏈所選擇的庫函數(shù)和目標(biāo)映像的規(guī)范,常見的值有abi 、eabi(embedded abi)、gun(glibc+oabi)、gnueabi(glibc+eabi)、gnueabihf(hf 指默認(rèn)編譯參數(shù)支持硬件浮點功能)等

審核編輯:湯梓紅

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

    關(guān)注

    5127

    文章

    19457

    瀏覽量

    313546
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11432

    瀏覽量

    212460
  • 操作系統(tǒng)
    +關(guān)注

    關(guān)注

    37

    文章

    7033

    瀏覽量

    124796
  • 交叉編譯
    +關(guān)注

    關(guān)注

    0

    文章

    32

    瀏覽量

    12807

原文標(biāo)題:什么是交叉編譯?為什么需要交叉編譯?

文章出處:【微信號:嵌入式攻城獅,微信公眾號:嵌入式攻城獅】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦
    熱點推薦

    嵌入式開發(fā)入門之旅

      課程目標(biāo):本次免費體驗課程將按照嵌入式開發(fā)設(shè)計的流程,從嵌入式開發(fā)基本概念、嵌入式項目流程詳解嵌入式ARM處理器
    發(fā)表于 07-09 16:57

    嵌入式開發(fā)入門之旅

    種類、嵌入式Linux在嵌入式產(chǎn)品的應(yīng)用、如何將Linux安裝到開發(fā)板上4.  我也來編譯Linux操作系統(tǒng)
    發(fā)表于 07-10 15:59

    嵌入式開發(fā)工具使用

    嵌入式開發(fā)工具使用一.實驗?zāi)康亩?實驗內(nèi)容三.預(yù)備知識四.實驗設(shè)備及工具(包括軟件調(diào)試工具)五.實驗步驟5.1 交叉編譯工具配置及編譯5.2arm-linux-gcc
    發(fā)表于 10-28 09:43

    交叉調(diào)試器嵌入式開發(fā)的流程步驟

    嵌入式開發(fā)導(dǎo)語嵌入式基礎(chǔ)概念交叉開發(fā)和自助開發(fā)嵌入式開發(fā)相關(guān)術(shù)語1.
    發(fā)表于 11-05 06:35

    嵌入式開發(fā)流程

    嵌入式開發(fā)流程一般是在PC機的Windows系統(tǒng)下安裝Ubuntu虛擬機,搭建嵌入式開發(fā)環(huán)境及交叉編譯環(huán)境,開發(fā)完成后,
    發(fā)表于 11-05 06:06

    嵌入式開發(fā)流程是怎樣的?

    嵌入式開發(fā)環(huán)境及交叉編譯環(huán)境,開發(fā)完成后,編譯得到bin文件,然后在Windows下將bin文件通過串口或網(wǎng)絡(luò)下發(fā)到
    發(fā)表于 11-08 06:24

    嵌入式開發(fā)

    嵌入式開發(fā)就是指在嵌入式操作系統(tǒng)下進行開發(fā)嵌入式Linux是以Linux為基礎(chǔ)的嵌入式作業(yè)系統(tǒng)。這里提供了
    發(fā)表于 12-20 13:21
    <b class='flag-5'>嵌入式開發(fā)</b>

    嵌入式交叉編譯環(huán)境的搭建解析

    5.1.1 嵌入式交叉編譯環(huán)境的搭建 交叉編譯的概念在第4章已經(jīng)詳細(xì)講述過,搭建
    發(fā)表于 10-18 16:44 ?1次下載

    干貨:嵌入式Ubuntu實踐之交叉編譯環(huán)境的建立

    在進行嵌入式開發(fā)之前,首先要建立一個交叉編譯環(huán)境,這是一套編譯器、連接器和libc庫等組成的開發(fā)環(huán)境。本文具體說明了
    發(fā)表于 08-12 10:42 ?1122次閱讀

    嵌入式詳解

    嵌入式詳解(stm32嵌入式開發(fā)實例)-嵌入式詳解,有需要的可以參考!
    發(fā)表于 07-30 16:07 ?64次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>詳解</b>

    嵌入式開發(fā)(一):嵌入式開發(fā)新手入門

    嵌入式開發(fā)環(huán)境及交叉編譯環(huán)境,開發(fā)完成后,編譯得到bin文件,然后在Windows下將bin文件通過串口或網(wǎng)絡(luò)下發(fā)到
    發(fā)表于 10-14 10:58 ?79次下載
    <b class='flag-5'>嵌入式開發(fā)</b>(一):<b class='flag-5'>嵌入式開發(fā)</b>新手入門

    嵌入式開發(fā)資料免費分享

    嵌入式開發(fā)資料免費分享嵌入式工程師經(jīng)驗分享:如何學(xué)習(xí)嵌入式開發(fā)截取文檔部分學(xué)習(xí)嵌入式工程師經(jīng)驗分享的資料分享給大家,文檔上從、嵌入式系統(tǒng)的概
    發(fā)表于 10-21 11:07 ?47次下載
    <b class='flag-5'>嵌入式開發(fā)</b>資料免費分享

    嵌入式實驗】《嵌入式開發(fā)工具使用》

    嵌入式開發(fā)工具使用一.實驗?zāi)康亩?實驗內(nèi)容三.預(yù)備知識四.實驗設(shè)備及工具(包括軟件調(diào)試工具)五.實驗步驟5.1 交叉編譯工具配置及編譯5.2 arm-linux-gcc
    發(fā)表于 10-21 13:06 ?3次下載
    【<b class='flag-5'>嵌入式</b>實驗】《<b class='flag-5'>嵌入式開發(fā)</b>工具使用》

    嵌入式開發(fā)Linux入門

    嵌入式開發(fā)導(dǎo)語嵌入式基礎(chǔ)概念交叉開發(fā)和自助開發(fā)嵌入式開發(fā)相關(guān)術(shù)語1.
    發(fā)表于 11-02 14:36 ?31次下載
    <b class='flag-5'>嵌入式開發(fā)</b>Linux入門

    嵌入式開發(fā)(一):嵌入式開發(fā)新手入門(轉(zhuǎn)載后續(xù)需要修改補充)

    嵌入式開發(fā)環(huán)境及交叉編譯環(huán)境,開發(fā)完成后,編譯得到bin文件,然后在Windows下將bin文件通過串口或網(wǎng)絡(luò)下發(fā)到
    發(fā)表于 11-02 20:06 ?17次下載
    <b class='flag-5'>嵌入式開發(fā)</b>(一):<b class='flag-5'>嵌入式開發(fā)</b>新手入門(轉(zhuǎn)載后續(xù)需要修改補充)