编译器编译过程要经历四个阶段:
1.预处理(进行宏替换)
-E
2.编译(生成汇编)
-S
3.汇编(生成机器可识别代码)
-c
4.连接(生成可执行文件或库文件)
-o
gcc完成过程
预处理(进行宏替换)
- 预处理的主要功能包括宏定义,文件包含,条件编译,去注释等。
- 预处理指令是以#号开头的代码行
- 实例:gcc -E test.c -o test.i
- -E是只进行预处理
- -o是指定要生成的文件名称
编译(生成汇编)
- 在这个阶段中,进行代码语法语义纠错,没错则将C语言程序解释为汇编命令
- 实例:gcc -S test.i -o test.s
- -S是只进行编译
汇编(生成机器可识别代码)
- 将汇编指令解释成为机器可识别的指令(此时程序不完整,不能执行)
- 实例:gcc -c test.s -o test.o
连接(生成可执行文件或库文件)
<