1.1交叉编译概念
(1)本地编译
在当前编译平台下,编译出来的程序只能放到当前平台下运行。平时我们常见的软件开发,都是属于本地编译:
比如,在 x86 平台上,编写程序并编译成可执行程序。这种方式下,我们使用 x86 平台上的工具,开发针对 x86 平台本身的可执行程序,这个编译过程称为本地编译。
(2)交叉编译
交叉编译可以理解为,在当前编译平台下,编译出来的程序能运行在体系结构不同的另一种目标平台上,但是编译平台本身却不能运行该程序:
比如,在 x86 平台上,编写程序并编译成能运行在 ARM 平台的程序,编译得到的程序在 x86 平台上是不能运行的,必须放到 ARM 平台上才能运行。
1.2为什么会有交叉编译
(1)Speed:
目标平台的运行速度往往比主机慢很多,许多专用的嵌入式硬件被设计为低成本和低功耗,没有太高的性能
(2)Capability:
整个编译过程是非常消耗资源的,嵌入式系统往往没有足够的内存或磁盘空间。
(3)Availability:
即使目标平台资源很充足,可以本地编译,但是第一个在目标平台运行的本地编译器总需要通过交叉编译获得。
(4)Flexibility:
一个完整的linux编译环境需要很多支持包,交叉编译使我们不需要花时间将各种支持包移植到目标板上。
1.3交叉编译的基本要素
(1)宿主机(host):
编译和编译程
交叉编译概念简介
最新推荐文章于 2023-03-11 20:19:35 发布