跳到主要内容

嵌入式 Linux 交叉编译

交叉编译

交叉编译(Cross Compile)通俗地讲就是在一种平台上编译出能运行在体系结构不同的另一种平台上的程式,比如在 PC 平台(x86)上编译出能运行在 ARM 平台上的可执行程序。虽然两个平台用的都是 Linux 系统,但编译得到的程序在 x86 平台上是不能运行的,必须放到 ARM 平台上才能运行。这种方法在异平台移植和嵌入式研发时非常有用。

相对于交叉编译,平常做的编译则称为本地编译(Native Compile),也就是在当前平台编译,编译得到的程序也是在本地运行。下图以 PC(x86_64) 和 BeagleBone Black(ARM)为例,展示本地编译和交叉编译的大致情况。

如今,许多高性能的处理器也可以很方便地安装并运行 GCC,实现在开发板上的本地编译。但对于大型项目,使用交叉编译环境执行此类任务的速度明显更快,并且感觉更像传统的嵌入式开发。

编译工具链

实验:构建交叉编译工具链

学会使用 Crosstool 工具构建交叉编译工具链。