GCC详解

GCC是GNU推出的多平台编译器,擅长提升执行效率。它的工作流程包括预处理、编译、汇编和链接四个阶段。预处理阶段处理宏替换、头文件展开等,头文件仅在编译阶段被展开。gcc常用参数包括:-v显示版本信息,-I指定头文件路径,-c生成二进制文件,-o指定输出文件名,-D定义宏,-Wall显示警告,-On优化代码等级,-g用于GDB调试。g++与gcc的主要区别在于对待C和C++源文件的处理以及链接标准库的不同。
摘要由CSDN通过智能技术生成

什么是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完成。

头文件在编译过程中的作用?

头文件并不参加链接和编译。编译器第一步要做的就是简单的把头文件在包含它的源文件中展开。不知你是否能理解这句话。也就是头文件里面有什么内容,通通把它移到包含这个头文件的源文件里。(我觉得这是个很重要的概念,可以帮助我们简化理解编译链接的过

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值