GCC编译

本文概述了GCC在Linux和QNX平台上的编译流程,包括预处理、编译、汇编和链接四个阶段,并介绍了GCC的基本用法,如编译选项-o、-E、-S、-c、-g和-O。对于C++开发者,熟悉这些内容是必备技能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

阅读了很多关于GCC的文章,对他的介绍大体一致,总结如下:Linux系统下的GCC(GNU C Compiler)是GNU推出的功能强大、性能优越的多平台编译器,是GNU的代表作品之一。GCC是可以在多种硬件平台上编译出可执行程序的超级编译器,其执行效率与一般编译器相比,平均效率要搞20%~30%。嗯,很官方很专业。
作为一个C++开发者来说,使用gcc应该算是必备的基础技能,个人认为熟悉以下两部分就对这块内容基本掌握了。

一、GCC编译流程

gcc对C/C++语言的编译过程可分为4各阶段:预处理(Preprocess)、编译(Compilation)、汇编(Assembly)和链接(Linking)。执行过程见下图:
在这里插入图片描述

1. 预处理

C预处理简称CPP,是对源程序中的伪指令(以#开头的指令)和特殊符号进行处理的过程。也就是解释宏定义和处理包含文件等操作,最终生成.i格式的文件。

2. 编译

编译的过程就是把预处理完的文件,进行一系列词法分析、语法分析、语义分析及优化后生成相应的汇编代码文件,即.s格式的文件。

3. 汇编

将汇编代码转变为机器可以执行的二进制代码,每一个汇编语句都对应一条机器指令,最终生成.o格式的文件。

4. 链接

在成功汇编之后,就进入了链接阶段。该阶段主要是解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值