gcc的编译流程

gcc的编译流程分为了4个步骤,分别为:
预处理(Pre-Processing);
编译(Compiling);
汇编(Assembling);
链接(Linking)。
(1)预处理阶段。
在该阶段,对包含的头文件(#include)和宏定义(#define、#ifdef等)进行处理。在上述代码的预处理过程中,编译器将包含的头文件stdio.h编译进来,并且用户可以使用gcc的选项“-E”进行查看,该选项的作用是让gcc在预处理结束后停止编译过程。
命令:gcc –E hello.c –o hello.i
(2)编译阶段。
接下来进行的是编译阶段,在这个阶段中,gcc首先要检查代码的规范性、是否有语法错误等,以确定代码实际要做的工作,在检查无误后,gcc把代码翻译成汇编语言。用户可以使用“-S”选项来进行查看,该选项只进行编译而不进行汇编,结果生成汇编代码。
命令:gcc –S hello.i –o hello.s
(3)汇编阶段。
汇编阶段是把编译阶段生成的“.s”文件转成目标文件,读者在此使用选项“-c”就可看到汇编代码已转化为“.o”的二进制目标代码了,如下所示:
命令:gcc –c hello.s –o hello.o
(4)链接阶段。
在成功编译之后,就进入了链接阶段。这里涉及一个重要的概念:函数库。
命令:gcc hello.o –o hello

你可能感兴趣的:(gcc,linux)