1、編譯:例如在linux上進行gcc直接編譯,編譯出來的可執行檔案是在本機能夠執行;
2、交叉編譯:下位機,如c51,stm32,若沒有足夠內存放編輯器,需要上位機進行跨機編譯來生成可執行檔案的,就是交叉編譯。
需要交叉編譯的原因:
由於本人嘗試的是樹莓派的交叉編譯,所以使用的工具是:gcc-linaro-arm-linux-gnueabihf-raspbian-x64
1、linux系統環境上新增bin目錄,輸入以下語句:
(1)在乙個終端下輸入:
echo $path
顯示當前環境變數
(2)永久設定環境變數,輸入:
vi /home/asus/
.bashrc
這是乙個隱藏檔案。/home/下的是使用者名稱,是你給你linux系統起的名字,本人用的是預設的。然後在最下方輸入:
export path=
[(1)中顯示的path]
:[你編譯工具bin的路徑]
例如本人的如下:
export path=
/usr/local/sbin:
/usr/local/bin:
/usr/sbin:
/usr/bin:
/sbin:
/bin:
/usr/games:
/usr/local/games:
/home/asus/desktop/tools/tools-master/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin
工具的路徑設定在最後乙個games的冒號後面!!
此時輸入以下語句判斷是否設定成功:
arm-linux-gnueabihf-gcc -v
當顯示出正確的版本資訊,說明成功了。此時,只需要把碼好的**進行編譯就可以了。
arm-linux-gnueabihf-gcc [你的程式.c]
-o [想要的名字]
因為樹莓派和電腦連線在同乙個網段下,直接使用wifi傳遞檔案過去。使用以下語句:
scp [你的程式名稱]
[樹莓派名稱]@ip位址:
[存放的路徑]
一般也可能需要輸入樹莓派登入的密碼進行驗證。輸入後就可以傳輸成功了。可以檢視樹莓派對應位置已經存在該程式,也可以直接執行。 樹莓派之交叉編譯
1 為什麼要使用交叉編譯 交叉編譯工具較快開發的速度。樹莓派中已經安裝了gcc工具鏈,可在樹莓派中直接編譯源 生成可執行檔案。於此同時,pc機上也可使用gcc工具鏈生成可執行 但是和樹莓派上的gcc工具不同,pc機上的gcc工具生成intel或amd晶元上可執行的 但樹莓派卻是arm系列的晶元,顯然...
樹莓派核心模組交叉編譯
一 獲得arm gcc 交叉編譯器 安裝該編譯器,把編譯器路徑加入到環境變數中 gedit bashrc在最後一行新增 export path path your dir tools master arm bcm2708 arm bcm2708hardfp linux gnueabi bin 然後終...
Ubuntu實現樹莓派交叉編譯
一 交叉編譯 在乙個平台上生成另乙個平台上的可執行 為什麼要大費周折的進行交叉編譯呢?一句話 不得已而為之。有時是因為目的平台上不允許或不能夠安裝所需要的編譯器,而又需要這個編譯器的某些特徵 有時是因為目的平台上的資源貧乏,無法執行所需要的編譯器 有時又是因為目的平台還沒有建立,連作業系統都沒有,根...