树莓派交叉编译,树莓派和虚拟机ssh连接

本文详细介绍了交叉编译的概念,对比了本地编译,并以树莓派为例,阐述了在x86平台上进行ARM平台程序的交叉编译过程。包括为何需要交叉编译,如资源限制和目标平台未建立操作系统。文中详细描述了交叉编译工具链的安装步骤,以及如何配置环境变量。同时,讲解了如何使用scp命令将编译后的文件传输到树莓派,并探讨了涉及wiringPi库的交叉编译方法。

树莓派交叉编译

什么是交叉编译?

在解释什么是交叉编译之前,先要明白什么是本地编译。

本地编译

本地编译可以理解为,在当前编译平台下,编译出来的程序只能放到当前平台下运行。平时我们常见的软件开发,都是属于本地编译:

比如,我们在 x86 平台上,编写程序并编译成可执行程序。这种方式下,我们使用 x86 平台上的工具,开发针对 x86 平台本身的可执行程序,这个编译过程称为本地编译。

交叉编译

交叉编译是在一个平台上生成另一个平台上的可执行代码。 同一个体系结构可以运行不同的操作系统;同样,同一个操作系统也可以在不同的体系结构上运行。交叉编译也可以理解为,在当前编译平台下,编译出来的程序能运行在体系结构不同的另一种目标平台上,但是编译平台本身却不能运行该程序:

比如,我们在 x86 平台上,编写程序并编译成能运行在 ARM 平台的程序,编译得到的程序在 x86 平台上是不能运行的,必须放到 ARM 平台上才能运行。

编译:是在一个平台上生成该平台上的可执行代码。

C51:交叉编译的发生在keil(集成环境上面),我们在windows上面编写C51代码,并编译成可执行代码,如:xxx.hex,是在C51上面运行的,不是在Windows上面运行

stm32

我们在Ubuntu上面编写树莓派的代码,并编译成可执行代码,如a.out,是在树莓派上面运行,不是在Ubuntu Linux上面运行

为什么要交叉编译?

平台上不允许或不能够安装我们所需要的编译器,如C51,内存太小

1.因为目的平台上的资源匮乏,无法运行我们所需要的编译器

2.树莓派是不是就不需要交叉编译?

错,也要。树莓派有时因为目的平台都还没有建立,连操作系统都没有,根本谈不上运行什么编译器。操作系统也是代码,也要编译!

平台运行需要至少两样东西:boot loader(启动引导代码)以及操作系统核心,这两样也是需要编译的。

宿主机(host):编辑和编译程序的平台,一般是基于x86的PC机,通常也被称为主机。

目标机(target):用户开发的系统,通常都是非x86平台。host编译得到的可执行代码在target上运行。

交叉编译需要用到的工具:交叉编译器,交叉编译工具链

交叉编译工具链的安装

网址:Raspberry Pi · GitHub

进入后点击tool,然后下载

下载好之后移入Ubuntu中,(/home/zlw/DailyCode/thread/tools-master.zip)然后解压

unzip   tools-master.zip

解压后步骤:

cd tools-master
cd arm-bcm2708/
cd gcc-lina
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Aurora Smith

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值