一个现代编译器的主要工作流程如下:
源程序(source code)→预处理器(preprocessor)→编译器(compiler)→汇编程序(assembler)→目标程序(object code)→连接器(链接器,Linker)→可执行程序(executables)。
简言之,源文件生成可执行文件的过程总共是经历了预编译/预处理,编译,汇编,链接这四个过程。
如下图所示:
下面用源文件test.c进行解释,test.c中代码为:
#include <stdio.h>
int main()
{
printf("hello world!\n");
return 0;
}
如输入命令:gcc test.c
则会完成上述四个过程,直接默认生成可执行文件a.out
如下图所示:
gcc参数如下:
下面分别对上述四个过程进行说明。
- 1.预编译/预处理——生成test.i
命令:gcc -E test.c > test.i 或 gcc -E test.c -o test.i
注:只有预编译/预处理可以>重定向,因为 gc