一、C源文件到可执行文件共经历了4个过程。在使用GCC编译程序时,编译过程可以被细分为四个阶段,包括预处理、编译、汇编、链接。
1、预处理
在预处理阶段,编译器主要作加载头文件、宏替换、条件编译的作用。一般处理带“#”的语句。
我们可以通过gcc 的 -E 选项进行查看,如下所示:
[root@localhost 0001]#gcc -E main.c -o main.i
编译器将main.c预处理结果输出 main.i 文件。
2、编译
在编译过程中,编译器主要作语法检查和词法分析。我们可以通过使用 -S 选项来进行查看,该选项预处理之后的结果翻译成汇编代码。如下所示:
[root@localhost 0001]# gcc –S main.i
编译器将预处理输出文件main.i 文件编译成main.s 文件。
3、汇编
在汇编过程中,编译器把汇编代码转化为机器代码。我们可以通过-c 选项来进行查看,如下所示: