GCC编译过程

GCC编译过程分按照顺序分为以下四个步骤

1、预处理(Pre-Processing)

使用的工具是编译器

2、编译(Compiling)

使用的工具是编译器

3、汇编(Assembling)

使用的工具是汇编器

4、链接(Linking)

使用的工具是链接器

预处理阶段处理的是以#开头的指令,如#define、#include以及#ifdef…#endif等,这些#开头的指令是GCC编译器的指令,并不是C语言的语法,使用选项-E即可查看预处理的结果,预处理生成的文件是.i文件,预处理完成后,编译过程即停止。

编译阶段进行代码规范性检查和语法检查,检查无误后,GCC把C语言代码翻译成汇编语言代码,使用选项-S即可查看编译阶段的结果,编译阶段生成的文件是.s文件,编译阶段完成后,编译过程即停止。

汇编阶段把编译阶段生成的.s文件转换成ELF二进制OBJ文件,使用选项-c即可查看汇编阶段的结果,汇编阶段生成的文件是.o文件,汇编阶段完成后,汇编过程即停止。

链接阶段把汇编阶段生成的OBJ文件、系统库的OBJ文件以及库文件链接起来,生成可以在特定平台上运行的可执行文件,链接阶段生成的文件是.out文件,链接阶段需要用到链接器脚本。

gcc hello.c -o hello.out     预处理--->编译--->汇编--->链接

gcc -E hello.c -o hello.i    预处理

gcc -S hello.c -o hello.s    预处理--->编译

gcc -c hello.c -o hello.o    预处理--->编译--->汇编

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sunday_893

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值