gcc编译器工作流程和常用编译参数
编译器工作流程
首先介绍下编译器的工作流程,在使用gcc编译程序时,编译过程分为四个阶段:
- 预处理(Pre-Processing)
- 编译(Compiling)
- 汇编(Assembling)
- 链接(Linking)
常用编译参数
无任何参数
gcc test.c
如果没有添加任何参数,则编译器将默认执行预处理、编译、汇编、连接操作,最后直接生成默认名为a.out的可执行程序。
-o
参数:指定输出名称
gcc -o test test.c
使用-o
参数指定输出名称,不加-c、-S、-E参数,
-E
参数:只进行预处理
gcc -E -o test.i test.c
使用-E
参数对源程序进行预处理,将#include,#define等进行文件插入及宏扩展等操作,生成.i
后缀名的文件(不同版本不一样,有的将预处理后的内容打印到屏幕上)。
-S
参数:进行预处理、编译
gcc -S -o test.s test.c
使用-S
参数将对源程序进行预处理、编译,生成.s
后缀名的汇编文件,里面包含汇编代码。
-c
参数:进行预处理、编译、汇编
gcc -c -o test.o test.c
使用-c
参数将对源程序进行预处理、编译、汇编操作,生成.o
后缀名的目标文件。