树莓派之交叉编译

来源:互联网 发布:JAVA下标 编辑:程序博客网 时间:2024/04/30 14:12
1 为什么要使用交叉编译
    交叉编译工具较快开发的速度。树莓派中已经安装了gcc工具链,可在树莓派中直接编译源代码生成可执行文件。于此同时,PC机上也可使用gcc工具链生成可执行代码,但是和树莓派上的gcc工具不同,PC机上的gcc工具生成intel或amd芯片上可执行的代码,但树莓派却是arm系列的芯片,显然存在不小的差异。那么使用交叉工具链便可在PC机上开发树莓派中可执行程序。
    虽然树莓派的主频可达700MHz远高于一般的嵌入式系统,但相比于PC机其性能还是差些,使用交叉工具链可节约开发时间。在编译链接同等规模的代码时,PC机所用的时间应少于树莓派所用时间,通过交叉编译的方法提高效率
2在树莓派交叉编译环境:UBUNTU9.10(32bit)  树莓派3b 安装2017-1-17 raspbian-jessie2.1 使用交叉编译工具

交叉编译工具是针对执行二进制文件的平台而选择,对于树莓派有专门的交叉编译工具:https://github.com/raspberrypi/tools,选择branch:master版本,右侧clone or download,点击download zip下载.

也可以直接在线安装:

sudo apt-get install build-essential gitgit clone git://github.com/raspberrypi/tools.git
个人强烈推荐先用windows在网址下载文件之后用ftp服务器传到linux虚拟机,因为虚拟机下载速度很慢,用windows下载速度会快很多2.2 安装交叉编译工具下面这些步骤如果不是有问题,例如必须要放在你的什么文件夹下的话,建议严格根据来做,因为新手很有可能在设置环境变量这里有问题

下载完成的文件为tools-master.zip,可以直接右键extract解压,也可以unzip解压到新建的RPI文件夹下, -d用于指定路径为./RPI


1
mkdir RPI
2 unzip -d ./RPI tools-master.zi
p
对于32位的Ubuntu,使用gcc-linaro-arm-linux-gnueabihf-raspbian,对于64位的使用gcc-linaro-arm-linux-gnueabihf-raspbian-x64.在此选择64位上的交叉编译工具.

2.3添加环境变量

要使用交叉编译工具需要添加环境变量.环境变量简单的说就是指定程序的路径,使程序在终端可以直接运行.比如执行ls指令不需要/bin/ls是因为这个路径已经添加到了环境变量PATH路径.关于环境变量可以参考前面我写过的修改变量的方法

查看环境变量可以用:

1
echo $PATH
 会输出所有的环境变量,各个环境变量之间用:分开
export PATH=$PATH:/home/book/RPI/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin 这个句子的意思是添加环境变量
/home/book/RPI/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin  你必须要在这个目录下面看到arm-linux-gnueabihf-gcc-4.8.3这个可执行文件

重启使环境变量立即生效

2.4测试

输入  arm-linux-gnueabihf-gcc-4.8.3 -v 如果设置环境变量成功的话,执行这个命令会输出相关的版本信息 而不是command not found

假如出现permittion denied 的话 可以sudo chmod 777 需要修改权限的文件夹或者文件 如果直接sudo 是不行的,必须要修改权限

2.5 使用交叉编译生成可执行文件

在linux虚拟机下编写文件 hello.c

#include<stdio.h>

int main()

{

    printf("hello");

}

arm-linux-gnueabihf-gcc-4.8.3 hello.c -o hello 和gcc实际上是差不多的,只不过现在使用的工具是arm-linux-gnueabihf-gcc-4.8.3

利用ftp工具将生成的hello可执行文件传送到树莓派上

sudo chmod 777 hello 修改文件权限

./hello

下载eclipse 

在windows下下载linux环境用的eclipse http://www.eclipse.org/downloads/ 根据是32位还是64位进行选择下载,X86的是64位的

解压 tar zvxf eclipse-jee-juno-SR2-linux-gtk-x86_64.tar.gz

在/eclipse目录下找到可执行文件eclipse 执行命令./eclipse启动程序

 



0 0
原创粉丝点击