樹莓派(raspberryPi)首次交叉編譯的操作過程記錄

與大多數PC機不同,樹莓派採用arm架構的cpu芯片。由於intel芯片採用CISC指令集,而arm採用RISC指令集,這意味着在樹莓派上運行的可執行程序,其遵循的指令集與PC機上的可執行程序遵循的指令集不同。所以PC機上普通的C/C++編譯器產生的可執行程序是不能在樹莓派上運行的。

如何編譯出樹莓派“能識別”的程序呢?辦法有2個:1是在樹莓派上直接安裝編譯器,然後在其上直接編譯;2是在PC機上安裝一個專門針對樹莓派的編譯器。這個編譯器產生的文件是不能在PC機上運行的,但是可以在樹莓派上運行。第二種辦法稱爲交叉編譯。

本文介紹第二種辦法。

步驟:

1 準備一臺安裝了ubuntu的PC機,並在其上安裝git

2 在~文件夾下建立文件夾raspberryPi。在Linux操作系統下,~意味着 /HOME/用戶名/   路徑。

3 進入該文件夾,輸入

git clone git://github.com/raspberryPi/tools.git

4 下載完畢後,raspberryPi文件夾下將出現tools文件夾。

輸入命令

sudo nano ~/.bashrc

5 在.bashrc中,添加如下代碼:

PATH=$PATH:~/raspberryPi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin

6 按下ctrl+o保存修改,然後按下ctrl+x推出nano編輯器

7 在命令行輸入

arm-linux-gnueabihf-gcc --version

以確定交叉編譯器可用

8 建立一個簡單的cpp文件:helloworld.cpp

#include <stdio.h>

int main(void)
{
    printf("hello world!\n");
    return 0;
}

9 進入helloworld.cpp所在文件夾下,輸入

arm-linux-gnueabihf-g++ helloworld.cpp -o helloworld

10 將raspberryPi的SD卡取出,通過SD-USB轉換器插入PC機,將第9步中編譯產生的文件helloworld複製到SD卡的~文件夾下

11 將SD-USB轉換器從PC機取出,將SD卡插入raspberryPI中,並將SD卡專用屏也安裝上。(參見我以前的博客 給raspberry Pi B 安裝3.5英寸觸摸屏)。啓動樹莓派。

12 點擊樹莓派界面左上方的命令行圖標,進入~路徑。利用mkdir命令在~路徑下建立文件夾exec.利用mv命令將helloworld移動到exec中。

13 執行命令 ./helloworld,觀察輸出。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章