PC机环境 ubuntu 14.04 64位
设置交叉工具链
1. sudo apt-get install build-essential git
2.clone交叉工具链
在home路径下建立一个文件夹取名为rpi
mkdir rpi
进入该目录并执行clone操作
cd rpi
git clone git://github.com/raspberrypi/tools.git
cd ~/rpi/tools/arm-bcm2708/
克隆完成之后可以通过pull更新tools
cd ~/rpi/tools
git pull origin
该目录中存在4个文件夹,本例使用gcc-linaro-arm-linux-gnueabihf-raspbian 或 gcc-linaro-arm-linux-gnueabihf-raspbian-x64。前者对应32位系统后者对应64位系统。
arm-bcm2708hardfp-linux-gnueabi
gcc-linaro-arm-linux-gnueabihf-raspbian
arm-bcm2708-linux-gnueabi
gcc-linaro-arm-linux-gnueabihf-raspbian-x64
3.加入环境环境变量
在/.bashrc文件中加入gcc交叉工具链目录。
sudo gedit ~/.bashrc
【32位系统】
export PATH=$PATH:$HOME/rpi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin
【64位系统】
export PATH=$PATH:$HOME/rpi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin
source .bashrc
4.简单测试
为了测试交叉工具链是否安装成功,可在控制台中输入
arm-linux-gnueabihf-gcc -v
是不是出来好多东西,那就对了.
2.简单的例子
文件名为hello-world.c,该例子仅测试交叉编译是否成功并简单测试了浮点数功能。
- #include <stdio.h>
- int main(void)
- {
- float pi = 3.14;
- printf("Hello World ");
- printf("%.2f ",2*pi);
- }
【交叉编译——简单指令】
cd进入hello-world.c所在目录,输入以下指令以生成可执行文件。请注意该可执行文件不能在PC机上运行。
arm-linux-gnueabihf-gcc hello-world.c -o hello-world
最终可在hello-world.c的同目录中生成hello-world可执行文件。
【交叉编译——makefile】
当然也可在该目录下建立makefile文件,简单的makefile文件如下
CC=arm-linux-gnueabihf-gcc
hello-world:hello-world.o
clean:
rm -rf hello-world.o hello-world
在makefile文件中使用了至少两条隐含规则,CC为默认工具链;*.o文件由同名的*.c文件生成。
那么在控制台中输入make即可生成可执行文件。
给树莓派传我编译好的可执行文件:
scp -r ~/catkin_ws/src/beginner_tutorials/src/hello-world ubuntu@192.168.1.6:/home/ubuntu
【SSH登陆执行】
登陆之后进入可执行文件所在目录,修改该文件的执行权限。
sudo chmod 755 hello-world
./hello-world
是不是在树莓派的终端上出现了:
Hello World
6.28
那就ok了
测试完了删除:rm -rf hello-world (不然看着不舒服)