GCC的浅层理解

本文详细介绍了GCC(GNU Compiler Collection)的四个主要工作流程:预处理、编译、汇编和链接。首先,预处理阶段处理包含头文件、宏替换及条件编译指令等;其次,编译阶段进行词法、语法和语义分析;接着,汇编阶段将汇编代码转换为二进制文件;最后,链接阶段解决符号引用问题,生成可执行文件。

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

gcc的工作流程

1.预处理

预处理阶段时不做语法检查而是执行以下步骤

a.头文件展开

b.进行宏替换

c.进行条件编译

总的来说就是“#”开头的代码在这一过程中编译

gcc -E test.c > test.i    
/*对源文件test.c进行预处理并生成预处理文件test.i */

2.编译

编译时进行下列分析

1.词法分析,主要负责检查关键字、标识符是否准确
2.语法分析,主要负责检查程序中语句的语法是否准确
3.语义分析,主要负责检查程序中语句的逻辑意义是否正确
gcc -c test.o

3.汇编

把汇编程序翻译成CPU可识别的二进制文件,成为目标文件

gcc -S test.c       /*生成test.s文件*/

4.链接

链接的过程实际上为了解决多个文件之间符号引用的问题。因为编译时只对单个文件进行编译,若遇到文件里需要引用到其他文件中的符号,则需要确定其他文件的地址,从而将目标文件和库文件链接在一起形成可执行文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值