今天,Mayuyu来讲一个比较重要的概念,即交叉编译,主要分为如下几个方面来讲述。
Contents
1. 什么是交叉编译 ?
2. 为什么要使用交叉编译 ?
3. 交叉编译工具链
1. 什么是交叉编译 ?
所谓交叉编译,简单地来说就是在一个平台上编译生成另一个平台上的可执行代码。注意这里的平台实际上
包含两个概念,即体系结构和操作系统。同一个体系结构可以运行不同的操作系统,同时,同一个操作系统
也可以运行于不同体系结构。比如,我们常说的x86 Linux平台实际上包含两部分,即intel x86体系结构
和Linux for x86,是这两者的统称。
2. 为什么要使用交叉编译 ?
那么,为什么要使用交叉编译呢 ? 那是因为没有办法啊,不使用不行。有时候目的平台上不能或者不允许
安装我们所需要的编译器,而我们又需要这个编译器的某些特征。比如在ARM平台上进行嵌入式开发就是这样。
可以说交叉编译这个概念的出现和嵌入式系统的广泛发展是同步的。在嵌入式目标平台上,内存和运算能力都
是有限的,所以不得不使用交叉编译了。
3. 交叉编译工具链
交叉编译工具链一般由编译器、连接器、解释器和调试器组成。就是为了编译、链接、处理和调试跨平台体系
结构的程序代码。每次执行工具链软件时,通过带有不同的参数,可以实现编译、链接、处理或者调试等不同
的功能。从工具链的组成上来说,它一般由多个程序构成,分别对应着各个功能。