树莓派(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,观察输出。

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