久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

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

 魅影蒼穹 2020-02-28

3.1.2. crosstool-ng中交叉編譯前綴的命名規(guī)則

crosstool-ng中,交叉編譯器的(前綴)的名字的命名規(guī)則是:

arch-vendor-kernel-system

對應(yīng)分別是:

3.1.2.1. 交叉編譯器名字中的arch部分

arch,,即系統(tǒng)架構(gòu)

表示交叉編譯器,,是用于哪個(gè)目標(biāo)系統(tǒng)架構(gòu)中,用于那個(gè)平臺中的

即,,用此交叉編譯器編譯出來的程序,,是運(yùn)行在哪種CPU上面的

arch的值,常見的有很多種,,比如arm,,x86,mips等等,。

例 3.1. 舉例:交叉編譯器中的arch的值

arm-cortex_a8-linux-gnueabi中的arm

mips-ar2315-linux-gnu中的mips

powerpc-e500v2-linux-gnuspe中的powerpc

x86_64-unknown-mingw32中的x86_64

3.1.2.2. 交叉編譯器名字中的vendor部分

vendor,,即生成廠家,提供商

表示誰提供的,,即誰制作出來這個(gè)交叉編譯器的,。

vendor的值,貌似是可以自己隨便填寫的,。

其他常見寫法,,還有寫成編譯交叉編譯器的作者的自己的名字的

比如,,我叫crifan,那么就可以寫成crifan,,然后生成的交叉編譯器,,就是xxx-crifan-xxx-xxx了。

更加通用的做法,,好像是:

把vendor寫成,,體系架構(gòu)的值,比如我之前針對xscale的去配置crosstool-ng的時(shí)候,,就寫了個(gè)xscale,。

或者寫成CPU的廠家的名字,或者是開發(fā)板的名字等等,。

例 3.2. 舉例:交叉編譯器中的vendor的值

  • arm-cortex_a8-linux-gnueabi中的cortex_a8,,就屬于CPU的名字
  • mips-ar2315-linux-gnu中的ar2315
  • powerpc-e500v2-linux-gnuspe中的e500v2,,也是CPU的內(nèi)核名
  • arm-buildroot-linux-uclibcgnueabi中的buildroot,,是之前折騰Buildroot時(shí),看到的,,即Buildroot把自己視為當(dāng)前自己制作出來的交叉編譯器的vendor,。

3.1.2.3. 交叉編譯器名字中的kernel部分

kernel,直譯為,,內(nèi)核

其實(shí)指的是,,你用此交叉編譯器,編譯出來的程序,,所運(yùn)行的目標(biāo)系統(tǒng)

即,,此交叉編譯器,編譯出來的程序,,在什么系統(tǒng)中,,什么環(huán)境中,運(yùn)行,。

而對應(yīng)的環(huán)境或系統(tǒng),,主要有兩種:

  • Linux

    表示:有OS(此處主要指的是Linux)操作系統(tǒng)的環(huán)境

    比如,我用交叉編譯器,,編譯一個(gè)helloworld程序,,然后下載到嵌入式開發(fā)中的嵌入式Linux中運(yùn)行,

    就屬于,,用此交叉編譯器,,編譯出來的程序,是要運(yùn)行于,,帶OS,,即嵌入式Linux系統(tǒng),,環(huán)境中的

    此處,簡稱為,,有OS的目標(biāo)系統(tǒng):Linux

  • bare-metal

    bare-metal,,直譯為:裸金屬

    表示:無(此處主要指的是Linux)操作系統(tǒng)的環(huán)境,

    比如,,用此交叉編譯器,,去編譯一個(gè)Uboot,或者是其他一個(gè)小程序,,是運(yùn)行在,,無嵌入式Linux的時(shí)候,單獨(dú)運(yùn)行的一個(gè)程序,。

    比如,,你購買的嵌入式系統(tǒng)開發(fā)版,常常附帶一些小程序,,比如點(diǎn)亮LED,,跑馬燈等程序,就是這種,,運(yùn)行在無OS的環(huán)境的

    此處,,簡稱為:無OS系統(tǒng)的:bare-metal

例 3.3. 舉例:交叉編譯器中的kernel的值

  • arm-bare_newlib_cortex_m3_nommu-eabi中的bare_newlib_cortex_m3_nommu,此處的bare,,應(yīng)該就是指的是bare-metal,,用于運(yùn)行在無OS的環(huán)境下
  • powerpc-e300c3-linux-gnu中的linux
  • m68k-unknown-uclinux-uclibc中的uclinux,就是指的是編譯出來的程序,,是運(yùn)行于沒有MMU的uclinux下

3.1.2.4. 交叉編譯器名字中的system部分

system,,直譯為,系統(tǒng)

其實(shí)主要表示的,,交叉編譯器所選擇的庫函數(shù)和目標(biāo)系統(tǒng)

最常見的一些值有,,gnu,gnueabi,,uclibcgnueabi等等,。

3.1.2.4.2. system中的eabi

與此相對應(yīng)的,之前早期的是oabi

eabi和oabi的對比,,詳見:

[整理]EABI和OABI

3.1.2.4.3. system中的uclibc

uclibc,,是c庫中的一種

crosstool-ng中,目前支持三種:glibc,eglibc,uclibc

關(guān)于三種的關(guān)系,,詳見:

【整理】uclibc,eglibc,glibc之間的區(qū)別和聯(lián)系

所以,,針對上述,gnu,,eabi,,uclibc等幾個(gè)選項(xiàng),,對應(yīng)的常見的一些組合的含義是:

  • gnu

    等價(jià)于:glibc+oabi

  • gnueabi

    等價(jià)于:glibc+eabi

  • uclibc

    等價(jià)于:uclibc+oabi(待確認(rèn))

例 3.4. 舉例:交叉編譯器中的system的值

  • arm-cortex_a8-linux-gnueabi中的gnueabi,即glibc+eabi
  • mips-ar2315-linux-gnu中的gnu,,即glibc+oabi
  • powerpc-e500v2-linux-gnuspe中的gnuspe,,沒搞懂啥意思。,。
  • x86_64-unknown-mingw32中的mingw32,,用的是Windows下的mingw32的庫

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn),。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多