树莓派交叉编译环境的建立

因为树莓派本身就相当于一台电脑,所以我们可以在树莓派上编译内核或者应用程序,但是树莓派相较于台式机或者笔记本电脑,资源和速度还是有区别的,所以就需要建立交叉编译环境在台式机或者笔记本上安装交叉编译工具链,如果在树莓派本机上编译一个内核得几个小时才能编译完。所以安装交叉编译环境相当重要,是我们后面学习开发的一切保证。假设你已经安装好虚拟机和Ubuntu系统,当然也可以用其他版本的Linux系统。树莓派官方推荐交叉编译用乌班图,所以我们安装了乌班图的16.04长期支持版本,发布于16年四月。

虚拟机VirtulBox 5.1.8

电脑安装ubuntu16.04

在成功安装有ubuntu的电脑上打开命令行终端

关于如何在虚拟机上装ubuntu可以参考http://www.wikihow.com/Install-Ubuntu-on-VirtualBox

进入home目录执行如下命令安装交叉编译工具链

git clone https://github.com/raspberrypi/tools

此过程需要等待较长时间,(也可以自己下载zip包然后解压配置)待完成后

在/.bashrc文件中加入gcc交叉工具链环境变量。

sudo nano ~/.bashrc

在该文件最后加入交叉工具链所在目录。请注意~符号表示HOME路径,.bashrc为隐藏文件。

【32位系统】

exportPATH=$PATH:$HOME/rpi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin

【64位系统】

exportPATH=$PATH:$HOME/rpi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin

请注意PATH代表环境变量,:冒号代表追加。这两种小猿都试过,可以成功安装。

保存并退出文件,接着执行以下指令以便立即更新当前控制台所包含的环境变量。

Source ~/.bashrc

输入arm-linux-gnueabihf-gcc -v 查看是否安装成功,如果现实类似下图所示的版本信息证明我们的交叉编译工具安装成功,我们就可以编译运行在树莓派上的程序了。

可以看出我的版本是4.8.3. 有兴趣的可以自己编写个小程序,然后编译下载到树莓派上运行,下节课我们来讲如何利用交叉编译器编译内核源码。安装针对其他平台的交叉编译环境也是类似,下载交叉工具链源码,解压源码,配置环境变量,查看版本,简单测试,如果成功就可以用来编译开发的程序,以及内核移植编译,驱动移植编译,等。成功安装交叉编译环境是基础,所以希望大家都会安装。

原文发布于微信公众号 - 嵌入式程序猿(InterruptISR)

原文发表时间:2016-11-18

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏北京马哥教育

Linux操作系统基础知识学习

Linux操作系统概述 Q1.什么是GNU?Linux与GNU有什么关系? A: 1)GNU是GNU is Not Unix的递归缩写,是自由软件基金会...

41910
来自专栏程序员互动联盟

【答疑解惑】如何安装eclipse

随着android应用开发的火热,eclipse使用的人也越来越多。好多初学者不知道如何安装eclipse,这里做一个简单回答。 首先我们要确认系统的版本,是3...

2674
来自专栏小白安全

安全扫描器Nmap渗透使用教程

介绍 nmap是用来探测计算机网络上的主机和服务的一种安全扫描器。为了绘制网络拓扑图Nmap的发送特制的数据包到目标主机然后对返回数据包进行分析。Nm...

4694
来自专栏耕耘实录

面试题总结整理系列专题

版权声明:本文为耕耘实录原创文章,各大自媒体平台同步更新。欢迎转载,转载请注明出处,谢谢

1022
来自专栏逆向技术

脱壳第三讲,UPX压缩壳,以及补充壳知识

           脱壳第三讲,UPX压缩壳,以及补充壳知识 一丶什么是压缩壳.以及壳的原理 在理解什么是压缩壳的时候,我们先了解一下什么是壳 1.什么是壳 ...

2838
来自专栏cs

计算机网络--子网划分+思科CiscroPacket使用

<h1>1.0概念</h1> <p> <p><b>子网划分</b>是通过借用IP地址的若干位主机位来充当子网地址从而将原网络划分为若干子网而实现的...

4309
来自专栏乐享123

Vim 命令行操作小技巧

1964
来自专栏沃趣科技

Oracle中的sysctl.conf内核参数

当我们对Oracle进行安装部署时,需要按照相关要求修改OS内核参数,下面对Oracle按照部署时需要修改的相关内核参数进行简单介绍。

1473
来自专栏码洞

一种简单的Failover机制

在应用结构上有这样一个业务场景,机房里部署了多个物理数据库的Proxy无状态节点,业务端通过Proxy节点间接和存储DB交互。Proxy支持了分库分表的特性,管...

1572
来自专栏H2Cloud

linux epoll 开发指南-【ffrpc源码解析】

摘要 关于epoll的问题很早就像写文章讲讲自己的看法,但是由于ffrpc一直没有完工,所以也就拖下来了。Epoll主要在服务器编程中使用,本文主要探讨服务器程...

4115

扫码关注云+社区

领取腾讯云代金券