GCC编译器将源文件.c编译成可执行文件.out,有以下中间过程:
1、预处理:包含展开头文件,宏替换
.c -> .i gcc helloworld.c
-o helloworld.i -E
-E是不编译,生成.i预处理后文件
2、编译:对单个文件进行编译,生成多个.s文件
.i -> .s
gcc helloworld.c -o helloworld.s -S
-S是不汇编,生成.s汇编文件
3、汇编:对单个文件进行汇编,生成多个.o文件
.s -> .o
gcc helloworld.c -o helloword.o -c
-c是不链接,生成.o文件目标文件
4、链接:对多个.o和库进行链接,生成可执行文件
.o -> .out