编译工具链和目标程序运行在相同的平台,即为本地编译。
在x86架构电脑上编译在ARM平台运行代码,即为交叉编译。
ARM-GCC是针对arm平台的一款编译器,它是GCC编译工具链的一个分支。
既然已经有本地编译,为什么需要交叉编译?这是因为通常编译工具链对编译环境有较高的要求,编译复杂的程序时,可能需要巨大的存储空间以及强大的CPU运算能力加快编译速度。常见的ARM 架构平台资源有限,无论是存储空间还是CPU运算能力,都与X86平台相去甚远,特别是对于MCU平台,安装编译器根本无从谈起。有了交叉编译,我们就可以在PC上快速编译出针对其他架构的可执行程序。
相对的,能进行架构“交叉”编译过程的编译器,就被称为 交叉编译器(Cross compiler)。 交叉编译器听起来是个新概念,但在MCU开发中一直使用的就是交叉编译器, 例如开发STM32、RT1052所使用的IDE软件Keil(MDK)或IAR,就是在Windows x86架构编译,生成MCU平台的应用程序,最后下载到板子执行。
查看Ubuntu上的GCC安装目录
查看开发板上的GCC安装目录
4.2.1. 使用APT安装ARM-GCC
安装交叉编译工具链有如下三种方式:
直接在Ubuntu下使用APT包管理工具下载