树莓派学习笔记——交叉编译

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,该例子仅测试交叉编译是否成功并简单测试了浮点数功能。

  1. #include <stdio.h>
  2. int main(void)
  3. {
  4. float pi = 3.14;
  5. printf("Hello World\n");
  6. printf("%.2f\n",2*pi);
  7. }

【交叉编译——简单指令】

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 [email protected]:/home/ubuntu

【SSH登陆执行】

登陆之后进入可执行文件所在目录,修改该文件的执行权限。

sudo chmod 755 hello-world

./hello-world

是不是在树莓派的终端上出现了:

Hello World
6.28

那就ok了

测试完了删除:rm -rf  hello-world (不然看着不舒服)

时间: 2024-10-13 21:03:03

树莓派学习笔记——交叉编译的相关文章

树莓派学习笔记——交叉编译练习之SQLite3安装

0.前言 本博文可能并没有太多使用价值.不过为了练习而练习.在树莓派上使用SQLite有非常多的方法,安装的方法也有非常多. [1]假设使用Python,那么不必安装SQLite由于Python已经自带SQLite. [2]能够使用apt-get安装.仅仅是SQLite的版本稍低些. [3]能够使用源码安装,在树莓派上直接编译,尽管树莓派的运算速度不如PC机.可是稍等几分钟也能编译安装完毕. [4]假设你想练习一下交叉编译,请阅读下面内容吧. [本文目的] [1]怎样交叉编译源码包 [2]交叉编

树莓派学习笔记——交叉编译工具链

0.前言 [1]为什么要使用交叉编译 交叉编译工具较快开发的速度.树莓派中已经安装了gcc工具链,可在树莓派中直接编译源代码生成可执行文件.于此同时,PC机上也可使用gcc工具链生成可执行代码,但是和树莓派上的gcc工具不同,PC机上的gcc工具生成intel或amd芯片上可执行的代码,但树莓派却是arm系列的芯片,显然存在不小的差异.那么使用交叉工具链便可在PC机上开发树莓派中可执行程序. 虽然树莓派的主频可达700MHz远高于一般的嵌入式系统,但相比于PC机其性能还是差些,使用交叉工具链可节

树莓派学习笔记——使用文件IO操作GPIO SysFs方式

0 前言 本文描述如果通过文件IO sysfs方式控制树莓派 GPIO端口.通过sysfs方式控制GPIO,先访问/sys/class/gpio目录,向export文件写入GPIO编号,使得该GPIO的操作接口从内核空间暴露到用户空间,GPIO的操作接口包括direction和value等,direction控制GPIO方向,而value可控制GPIO输出或获得GPIO输入. Linux学习可从应用出发,先不纠结Linux驱动编写,先把Linux给玩起来. [相同与不同] 本文和[EasyARM

树莓派学习笔记——使用标准PC104键盘

0 前言 本文将详细介绍树莓派的键盘设计.和多数的人的想法不同,世界上存在着各种各样不同的键盘,中国人使用的键盘和美国人使用的键盘相同,而树莓派源产自英国,英国的键盘和美国并不相同.国内多使用标准104键键盘,下面就讲讲如何配置. [相关博文] [树莓派学习笔记--索引博文]--更多博文请关注. 1 PC104标准键盘 [wiki百科]--IBM PC keyboard 所谓PC104标准键盘是指键盘含有104个按键,国内和美国多使用该类型键盘,而欧洲大陆多使用PC105键盘,除了比PC104键

树莓派学习笔记——Model B Model B+ Compute Module Dev Kit的区别和联系

0 前言 最近浏览器树莓派官方发现树莓派推出了两款新Model--一款名为树莓派 model B+,一款名为树莓派 Compute Module Dev Kit.带着欣喜和恐惧查阅了相关资料,并通过淘宝和RS中国了解开发板价格.欣喜的感觉来自于树莓派的功能得到了增强,恐惧来自于树莓派的改变带来新的学习成本.经过几天的资料收集,所以整理成博文和大家分享. 1 横向比较 [共性比较] 表1 三款树莓派横向比较 区别 Model B Model B+ Compute Module Dev Kit 芯片

树莓派学习笔记—— 源代码方式安装opencv

0.前言 本文介绍如何在树莓派中通过编译源代码的方式安装opencv,并通过一个简单的例子说明如何使用opencv. 更多内容请参考--[树莓派学习笔记--索引博文] 1.下载若干依赖项     在开始安装之前,最好更新树莓派软件源.如果更新时间太长,请参考博文修改软件源网络地址--[树莓派学习笔记--修改树莓派软件源] sudo apt-get update 请依次安装以下依赖项,这些必须安装的依赖项来自于opencv官网的说明,在多数debian系统中都可以采用这种方式进行安装.其实在树莓派

树莓派学习笔记(5):成功实现NAS家庭服务器(流媒体播放、文件共享及下载机)

转载请注明:@小五义http://www.cnblogs.com/xiaowuyiQQ群:64770604 一.家庭服务器实现的主要功能 1.流媒体播放服务:利用DLNA实现电视.手机.电脑播放其上面的媒体文件. 2.文件共享:利用samba实现手机.电脑等终端与服务器的文件共享. 3.自动下载:利用aria2c实现自动下载. 先上几张效果图: 用orico的包装盒做了个机箱. 内部效果,线还是有些凌乱 放在桌上,感觉还不错,呵呵 二.准备工作 1.树莓派B+ 2.安装raspbian系统,具体

树莓派学习笔记——I2C设备载入和速率设置

原文:http://blog.csdn.net/xukai871105/article/details/18234075 1.载入设备 方法1——临时载入设备 sudo modprobe -r i2c_bcm2708  #卸载设备 -r代表remove sudo modprobe i2c_bcm2708     #重新载入设备 方法2——永久载入设备 打开配置文件,进行修改 sudo nano /etc/modules                # 使用nano打开文件 增加以下两行 i2c

树莓派学习笔记——USB wifi配置指南

0 前言 树莓派既可以使用有线网络又可以无线网络,如果使用有线网络不方便的话可以借助USB wifi无线网卡让树莓派也插上无线"翅膀".但是和使用有线网络即插即用的方式不同,USB wifi网卡需要进行一些配置.通过一天的配置实验,本文总结了树莓派wifi配置的两种方法--[1]使用wpa_gui工具方法和[2]修改配置文件方法. [1]使用wpa_gui工具方法 wpa_gui是一种linux平台常用的wifi配置工具,wpa_gui具有图形界面操作简单.由于,树莓派B板只有两个US