Linux之交叉編譯

2021-10-21 08:38:07 字數 1698 閱讀 4554

交叉編譯:在乙個平台上生成另乙個平台的可執行**。

編譯:是在乙個平台上生成該平台的可執行程式

為什麼要交叉編譯

有的平台上不允許或者不能夠安裝我們所需要的編譯器比如c51。因為目的平台上的資源匱乏,無法執行我們所需要的編譯器。

樹莓派是不是就不需要交叉編譯?

錯。也要,樹莓派有時又是因為目的平台還沒建立,連作業系統都沒有,根本談不上什麼編譯器。作業系統也要**,也要編譯。

平台執行至少需要兩樣東西:bootloader(啟動引導**)以及作業系統核心

宿主機(host)(電腦) :編輯和編譯程式的平台,一般是基於x86的pc機,通常也被稱為主機。

目標機(target)(樹莓派):使用者開發的系統,通常都是非x86平台。host編譯得到的可執行**在target上執行。

交叉編譯用到的工具為交叉編譯器:交叉編譯器

臨時有效:在其他視窗是失效的,有風險。

將編譯軟體(自己上網找資源)從共享檔案拷貝到工作目錄當中

cp /mnt/hgfs/樹莓派/tools-master.zip
解壓

unzip tools-master.zip
cd tools-master/

lscd arm-bcm2708/

lscd gcc-linaro-arm-linux-gnueabihf-raspbian-x64/

lscd binls.

/arm-linux-gnueabihf-gcc -v

gcc -v

lsecho $path //獲得當前環境變數的值

環境變數 path

export path=

/usr/local/sbin:

/usr/local/bin:

/usr/sbin:

/usr/bin:

/sbin:

/bin:

/usr/games:

/home/clc/lessonpi/tools-master/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin

永久有效

修改工作目錄下的.bashrc 隱藏檔案,配置命令終端的

vi /home/clc/

.bashrc

在檔案最後一句加入

export path=

/usr/local/sbin:

/usr/local/bin:

/usr/sbin:

/usr/bin:

/sbin:

/bin:

/usr/games:

/home/clc/lessonpi/tools-master/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin

然後載入配置檔案,馬上執行生效

source /home/clc/

.bashrc

LINUX之交叉編譯環境搭建

安裝步驟 1 準備工具安裝目錄 將壓縮包arm linux gcc 4.4.3.tar.gz存放在乙個目錄下,這個目錄就是你等會解壓縮的目錄,以後這個目錄就不能隨便刪掉了,我的存放路徑是 home aldrich arm,如下圖,記住這個路徑,等會還會用到。tar.gz 和.tgz解壓 tar zx...

CMake之交叉編譯

一 引言 很多時候,我們在開發的時候是面對嵌入式平台,因此由於資源的限制需要用到相關的交叉編譯。即在你host宿主機上要生成target目標機的程式。裡面牽扯到相關標頭檔案的切換和編譯器的選擇以及環境變數的改變等,我今天僅僅簡單介紹下相關cmake在面對交叉編譯的時候,需要做的一些準備工作。二 cm...

樹莓派之交叉編譯

1 為什麼要使用交叉編譯 交叉編譯工具較快開發的速度。樹莓派中已經安裝了gcc工具鏈,可在樹莓派中直接編譯源 生成可執行檔案。於此同時,pc機上也可使用gcc工具鏈生成可執行 但是和樹莓派上的gcc工具不同,pc機上的gcc工具生成intel或amd晶元上可執行的 但樹莓派卻是arm系列的晶元,顯然...