编译过程中不同文件的后缀名意义

在 C 语言的编译过程中,不同阶段会生成不同后缀的文件,同时可以使用不同的编译选项来控制编译流程。以下是它们的含义及全称:

  1. 后缀名(文件类型)

后缀 文件类型 说明
.c C 源代码文件 C 语言的原始源代码文件
.i 预处理文件(Preprocessed file) 经过预处理器处理后的 C 代码(展开 #include 和 #define 等)
.s 汇编文件(Assembly file) 编译器将 C 代码转换为的汇编语言代码
.o 目标文件(Object file) 汇编器将汇编代码转换成的机器码文件,尚未链接

  1. 编译选项(GCC 编译选项)

选项 全称 作用
-E Preprocessing only 只进行预处理,生成 .i 文件,不进行编译
-S Compile only 只编译,不汇编,生成 .s 汇编文件
-c Compile and assemble 编译+汇编,但不链接,生成 .o 目标文件
-o Output file 指定输出文件的名称

  1. 结合示例命令

假设有 C 源文件 main.c,可以通过以下命令逐步完成编译:

gcc -E main.c -o main.i # 只进行预处理,生成 main.i
gcc -S main.i -o main.s # 只进行编译(不汇编),生成 main.s
gcc -c main.s -o main.o # 进行编译+汇编(不链接),生成 main.o
gcc main.o -o main # 进行链接,生成可执行文件 main

通常,我们可以直接使用:

gcc main.c -o main

GCC 会自动完成所有步骤,包括预处理、编译、汇编和链接,生成最终的可执行文件。

这样,.o、.s、.i 及 -E、-S、-c 这些选项的作用就清楚了! 🚀

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值