編譯 交叉編譯

2021-10-02 00:06:36 字數 1161 閱讀 9208

交叉編譯含義:

是指在乙個平台上生成另乙個平台上的可執行**

同乙個體系結構可以執行不同的作業系統,同樣乙個作業系統也可以在不同的體系結構上執行

例:常說的x86 linux平台(指inter x86體系結構及linux for x86作業系統)

x86 winnt平台(指inter x86體系結構及windows nt for x86作業系統)

交叉編譯的好處:
在進行嵌入式系統的開發時,執行程式的目標平台通常具有有限的儲存空間和運算能力,

比如常見的arm平台,其一般的靜態儲存空間大概是16到32mb,而cpu的主頻大概在

100mhz到500mhz之間。這種情況下,在arm平台上進行本機編譯就不太可能了,這是因

為一般的編譯工具鏈(compilation tool chain)需要很大的儲存空間,並需要很強

的cpu運算能力。為了解決這個問題,交叉編譯工具就應運而生了。通過交叉編譯工具,

我們就可以在cpu能力很強、儲存空間足夠的主機平台上(比如pc上)編譯出針對其他平

臺的可執行程式。

常見的交叉編譯例子如下:

在windows pc上,利用ads(arm開發環境),使用armcc編譯器,則可編譯出針對arm cpu的可執行**。

在linux pc上,利用arm-linux-gcc編譯器,可編譯出針對linux arm平台的可執行**。

在windows pc上,利用cygwin環境,執行arm-elf-gcc編譯器,可編譯出針對arm cpu的可執行**。

tips

32位作業系統是針對32位cpu設計的

32位作業系統指的是(系統指令集32位)

32位cpu指的是(cpu字長32位,字長指用來一次性處理事務的長度)

cpu架構指的是指令集架構

cpu架構分為:

x86架構是x86指令集,屬於cisc指令集(複雜指令集)

arm架構是arm指令集,屬於risc指令集(精簡指令集)

(主要是複雜指令集和精簡指令集的區別,一般來說risc的效率更高,功耗更好,cisc更全能,但是指令集也在不斷的演變,所以也不存在絕對的。)

此外還有mips(龍芯)、powerpc等很多架構

交叉編譯 Go 交叉編譯 跨平台編譯

golang 支援交叉編譯,在乙個平台上生成另乙個平台的可執行程式 cgo enabled 0 goos linux goarch amd64 go build main.go cgo enabled 0 goos windows goarch amd64 go build main.go cgo ...

交叉編譯(2) 交叉編譯鏈

什麼是交叉編譯鏈 明白了什麼是交叉編譯,那我們來看看什麼是交叉編譯鏈。首先編譯過程是按照不同的子功能,依照先後順序組成的乙個複雜的流程,如下圖 那麼編譯過程包括了預處理 編譯 彙編 鏈結等功能。既然有不同的子功能,那每個子功能都是乙個單獨的工具來實現,它們合在一起形成了乙個完整的工具集。同時編譯過程...

交叉編譯 TSN之linuxptp交叉編譯

注 下面的可能會遺漏部分細節,但主要的部分基本都寫出來了,應該無大礙。注 以下步驟雖然針對的imx8mp evk,但只要是aarch64架構的晶元,大部分操作都通用的。我利用它主要是為了測試tsn的802.1as特性,使用的軟體為 phc2sys pmc ptpmanagement client 如...