简单说明gcc和arm-linux-gcc的区别

首先了解一下编译的过程:一个源文件经过gcc编译器编译后生成可执行文件其实经历了四个过程:

* 预处理(Pre-processing)

* 编译(Compiling)

* 汇编(Assembling)

* 链接(Linking)


而gcc经过编译后生成的可执行文件(最后也就是一大堆机器码)是在linux操作系统之上运行的,也就是说经过gcc编译器最后生成的一大堆机器码只有Linux操作系统认识,但是我们做ARM裸机实验时Soc上是没有linux操作系统的,所以这时候ARM裸机只认识经过ARM指令集生成的机器码。这时候我们要想让可执行文件在ARM裸机上运行就需要使用arm-linux-gcc (交叉编译工具)编译生成的可执行文件。字面理解arm-linu-gcc的意思也就是编写环境是使用Linux主机编写的,然后编译后要在ARM上运行的可执行文件。

你可能感兴趣的:(简单说明gcc和arm-linux-gcc的区别)