亚洲综合图片区自拍_思思91精品国产综合在线观看_一区二区三区欧美_欧美黑人又粗又大_亚洲人成精品久久久久桥本

交叉編譯工具鏈介紹

2023-04-15 15:17:54 來源:嵌入式攻城獅

1. 交叉編譯工具鏈介紹


(資料圖片僅供參考)

1.1 交叉編譯

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

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

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

1.2 交叉編譯工具鏈

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

編譯過程包括了預(yù)處理、編譯、匯編、鏈接等功能。 每個子功能都是一個單獨的工具來實現(xiàn),它們合在一起形成了一個完整的工具集。 同時編譯過程又是一個有先后順序的流程,牽涉到工具的使用順序,每個工具按照先后關(guān)系串聯(lián)在一起,形成了一個編譯工具鏈

交叉編譯工具鏈就是為了編譯跨平臺體系結(jié)構(gòu)的程序代碼而形成的由多個子工具構(gòu)成的一套完整的工具集。 同時它隱藏了預(yù)處理、編譯、匯編、鏈接等細(xì)節(jié),當(dāng)指定了源文件(.c)時,它會自動按照編譯流程調(diào)用不同的子工具,自動生成最終的二進(jìn)制程序映像(.bin)

注意:嚴(yán)格意義上來說,交叉編譯器,只是指交叉編譯的gcc,但是實際上為了方便,我們常說的交叉編譯器就是交叉編譯工具鏈

1.3 交叉編譯工具鏈命名規(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è)備上運(yùn)行的操作系統(tǒng),常見的有l(wèi)inux、none(裸機(jī))等abi:應(yīng)用程序二進(jìn)制接口(Application Binary Interface),交叉編譯鏈所選擇的庫函數(shù)和目標(biāo)映像的規(guī)范,該字段常見的值有abi 、eabi(embedded abi)、gun(glibc+oabi)、gnueabi(glibc+eabi)、gnueabihf (hf 指默認(rèn)編譯參數(shù)支持硬件浮點功能)等

2. Ubuntu下搭建GCC交叉編譯工具鏈

Ubuntu自帶的gcc編譯器是針對X86架構(gòu)的,但是我們要編譯的是ARM架構(gòu)的代碼,所以需要一個在X86架構(gòu)PC上運(yùn)行,可以編譯ARM架構(gòu)代碼的交叉編譯器

2.1 下載交叉編譯器

本文使用Linaro出品的交叉編譯器, Linaro是一間非營利開放源代碼軟件工程公司,最著名的就是Linaro GCC編譯工具鏈(編譯器),其官網(wǎng)可以下載源碼

Linaro 網(wǎng)站提供了多種GCC交叉編譯工具鏈,我們使用的是Cortex-A7內(nèi)核的開發(fā)板,因此選擇arm-linux-gnueabihf,再根據(jù)32/64位系統(tǒng)下載不同版本的編譯器,這里選擇下載x86_64版本

2.2 安裝交叉編譯器

在Ubuntu中創(chuàng)建目錄/usr/local/arm

sudo mkdir /usr/local/arm

將下載好的交叉編譯器復(fù)制到該目錄中

sudo cp gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz /usr/local/arm/ -f

拷貝完成后在該目錄中對交叉編譯工具進(jìn)行解壓

sudo tar -vxf gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz

打開/etc/profile文件,修改環(huán)境變量,在文件末尾添加如下內(nèi)容

export PATH=$PATH:/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin

使用交叉編譯器,還需要安裝如下庫

sudo apt-get install lsb-core lib32stdc++6

2.3 交叉編譯器驗證

使用以下命令查看交叉編譯工具的版本號,若安裝正確就會顯示版本號

arm-linux-gnueabihf-gcc -v

從上圖可以看出當(dāng)前交叉編譯器的版本號為4.9.4,說明交叉編譯工具鏈安裝成功。 使用交叉編譯器的命令一般是arm-linux-gnueabihf-gcc

標(biāo)簽:

上一篇:
下一篇: