树莓派配置交叉编译环境

来源:互联网 发布:淘宝网在哪里买基金 编辑:程序博客网 时间:2024/06/05 19:53

树莓派是arm的处理器,而我们使用的服务器、pc都是X86架构的处理器,CPU的指令集有很大差别,在pc环境下编译的程序无法直接运行,而且树莓派相对而言性能没pc那么强劲,所以在树莓派上编译大段代码就很吃力,我曾经就试过在树莓派上编译内核代码,结果整整一天都没编译完。而且树莓派没有内核头,程序也不能直接编译,so搭建一个树莓派交叉编译环境就很有必要了。本来在这学期开始我就试过在我的虚拟机上搭建交叉编译环境,但是但是我们学校的校园网用的802.1X认证,真是蛋疼,这个认证不允许网卡分享网络,(只要小米wifi写了一个程序,通过电脑端口转发数据)所以虚拟机也上不了网,没办法配置。直到昨天买了一个服务器,我就把它当我的虚拟机用。

配置环境:ubuntu12.4

首先下载树莓派交叉编译工具:https://github.com/raspberrypi/tools,可以用这个工具下wget https://github.com/raspberrypi/tools网速感人,我用服务器下到哭,以前下了好几个小时,今天本来想把资料上传到百度云,结果一直失败,过几天补上来吧。(好啦,上传到百度云了,共享出来:链接:http://pan.baidu.com/s/1gecrTYF)

然后,把代码解压出来,这个是使用zip大包,所以用unzip tools.zip,如果你机器上没有的话就下一个unzip:sudo apt-get install unzip

再把文件移动到/usr/下:sudo mv tools /usr/

添加环境变量:

$vim  ~/.bashrc 在文件的末尾加上: export PATH=$PATH:/usr/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin $source .bashrc
               

进行测试:显示交叉编译工具的版本信息arm-linux-gnueabihf-gcc -v

然后,写一个测试程序

vim a.c

然后把下面代码粘贴进去

#include <unistd.h>#include <stdlib.h>#include <stdio.h>int main(){        if((write(1, "here is some data\n", 18)) != 18)                write(2, "A write error has occurred on file descriptor 1\n", 46);        printf("hello word!\n");        //exit(0);        return 0;}

然后编译了两份,一份是共服务器自带的gcc编译的,一份是交叉编译工具编译的





编译过程参照上图,然后把交叉环境编译的拷到树莓派内,效果如下,(hello是服务器gcc编译的,是X86平台的,所以无法运行)



至此,大功告成



0 0
原创粉丝点击