我们在使用gcc生成可执行程序的时候,一般是命令: gcc  *.c, 生成可执行文件a.out

其实过程可以分为4个步骤,分别是预处理,编译,汇编和链接。下面以最基本的helloworld来简单了解一下编译的过程。


1.预编译

预编译又称为预处理,是做些代码文本的替换工作。

处理#开头的指令,比如拷贝#include包含的文件代码,#define宏定义的替换,条件编译等

就是为编译做的预备工作的阶段

主要处理#开始的预编译指令

gcc -E hello.c  -o hello.i  生成的hello.i仍然是个文本文件

wKioL1WqdZGDyyo7AACzrNhiKIY587.jpg

2.编译

把用高级程序设计语言书写的源程序,翻译成汇编语言

wKiom1Wqc8KgCiPjAAJwdSOmAug472.jpg


3.汇编

这个过程把汇编语言翻译成机器语言

wKioL1WqdbTQJectAAEF7wngAV8579.jpg

4.链接

将生成的目标文件和其所依赖的库文件进行连接,生成一个可执行文件

wKioL1WqdcHjTbSkAADL7AoV70M162.jpg