预编译、编译、汇编、链接

从上图可以看到:

预编译

将.c 文件转化成 .i文件

使用的gcc命令是:gcc –E

对应于预处理命令cpp

编译

将.c/.h文件转换成.s文件

使用的gcc命令是:gcc –S

对应于编译命令   cc –S

汇编

将.s 文件转化成 .o文件

使用的gcc 命令是:gcc –c

对应于汇编命令是  as

链接

将.o文件转化成可执行程序

使用的gcc 命令是: gcc

对应于链接命令是  ld

总结起来编译过程就上面的四个过程:预编译、编译、汇编、链接。了解这四个过程中所做的工作,对我们理解头文件、库等的工作过程是有帮助的,而且清楚的了解编译链接过程还对我们在编程时定位错误,以及编程时尽量调动编译器的检测错误会有很大的帮助的。

有时候,不小心知道了一些事,才发现自己所在乎的事是那么可笑。
原文地址:https://www.cnblogs.com/axjlxy/p/15293457.html