交叉編譯基本術語

2021-08-25 06:49:25 字數 1032 閱讀 7742

在交叉編譯中,三個術語非常重要:host,target,build

host : 你編譯好的程式可以執行的平台

build: 你正在使用的機器型別

target: 你編譯的程式可以處理的平台 (目前理解和toolchain有關係,比如你要編譯個arm-gcc,讓你交叉編譯成的arm-gcc可以生成arm平台可執行**就需要在configure的時候設定這個target=arm)

build、host、target這幾個變數。看起來容易讓人感到一些混淆,其實這極大的簡化了二進位制檔案格式生成的控制。

build -- 在build系統中建立package

host -- 建立好package後,package能夠在host執行

target -- 經由package所產生的可執行檔案能夠在target上執行。

例如: 在gnu/linux系統上交叉編譯乙個可以在aix機器上執行的package。

那麼 build = i*86-pc-linux-gnu host = rs6000-ibm-aix3.2 target = rs6000-ibm-aix3.2

在gnu/linux系統上建立乙個交叉編譯工具,

此交叉編譯工具可以在aix上執行,由此交叉編譯出來的檔案可以在arm上執行,

那麼: build = i*86-pc-linux-gnu host = rs6000-ibm-aix3.2 target = arm-linux 由此可以看出

,當建立乙個package時,不必非在本地機器上建立,可以設定不同的configuration name來生成不同系統的package。

非交叉編譯三者都是一樣的,即host == build == target;

交叉編譯 gcc 時,編譯完成後gcc要在宿主機上執行,而生成的可執行程式是面向目標機的。

所以此時 build=host=宿主機型別 target=目標機型別

而使用交叉編譯器進行編譯時,交叉編譯器要在宿主機上執行,生成的程式要在目標機執行。

所以此時 build=宿主機型別 host=target=目標機型別

交叉編譯基本過程

該環境變數主要用於cmake編譯時,通過獲取環境變數的值來判斷取鏈結哪些庫等作用.因為環境變數是系統中程序共享的資料.如 export cross compiling type arm platform 該檔案主要是對進行交叉編譯時,所使用的交叉編譯工具鏈的說明,所謂交叉編譯工具鏈就是我們要生成目標...

交叉編譯的基本概念

在一種計算機環境中執行的編譯程式,能編譯出在另外一種環境下執行的 我們就稱這種編譯器支援交叉編譯。這個編譯過程就叫交叉編譯。簡單地說,就是在乙個平台上生成另乙個平台上的可執行 這裡需要注意的是所謂平台,實際上包含兩個概念 體系結構 architecture 作業系統 operating system...

編譯 交叉編譯

交叉編譯含義 是指在乙個平台上生成另乙個平台上的可執行 同乙個體系結構可以執行不同的作業系統,同樣乙個作業系統也可以在不同的體系結構上執行 例 常說的x86 linux平台 指inter x86體系結構及linux for x86作業系統 x86 winnt平台 指inter x86體系結構及win...