什么是gcc
linux系统下的Gcc(GNU C Compiler)是GNU推出的功能强大、性能优越的多平台编译器,是GNU的代表作品之一。gcc是可以在多种硬体平台上编译出可执行程序的超级编译器,其执行效率与一般的编译器相比平均效率要高20%~30%。
Gcc编译器能将C、C++语言源程序、汇程式化序和目标程序编译、链接成可执行文件。
gcc工作流程图
牢记4个 阶段
预处理(生成C文件.i),具体的工作比如宏替换、头文件展开、去掉注释等等。
编译(生成汇编文件.s)
汇编(生成二进制文件.o)
执行
需要注意的是:gcc工作流程一共是4步,但是这4步并不是都是由gcc来完成的,gcc只完成1步,剩下的都是调用其它的处理器来完成的。预处理阶段调用了预处理器cpp,编译就是由gcc完成的,汇编是由汇编器as完成,链接是由链接器ld完成。
头文件在编译过程中的作用?
头文件并不参加链接和编译。编译器第一步要做的就是简单的把头文件在包含它的源文件中展开。不知你是否能理解这句话。也就是头文件里面有什么内容,通通把它移到包含这个头文件的源文件里。(我觉得这是个很重要的概念,可以帮助我们简化理解编译链接的过