GCC学习笔记(一)--编译流程

这篇博客详细介绍了GCC的编译过程,包括GCC的编译选项和命令,特别是针对多文件编译的两种方式——一次性编译和独立编译,重点讨论了独立编译带来的优势。

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

GCC学习笔记(一)–编译流程

GCC编译过程

test.c ===> 预处理器 (-E) ===> test.i (文本)

test.i ===> 编译器   (-S) ===> test.s (文本)

test.s ===> 汇编器   (-c) ===> test.o (二进制)

test.o ===> 链接器        ===> test   (二进制)

GCC编译选项

选项描述
-E产生 .i 文件后停止
-S产生 .s 文件后停止
-c产生 .o 文件后停止
-o产生目标文件(.i, .s, .o, 可执行文件)
-Wall显示警告信息
-g加入调试信息
-Idir将dir目录加入搜索头文件的目录路径
-Ldir将dir目录加入搜索库的目录路径
-llib链接lib库

GCC编译命令

gcc -Wall -g -E test.c -o test.i (预处理)
gcc -Wall -g -S test.i -o test.s (编译)
gcc -Wall -g -c test.s -o test.o (汇编)
gcc -Wall -g    test.o -o test   (链接)

gcc -Wall -g    test.c -o test   (一步到位)

多文件编译

一次性编译

gcc -Wall -g test1.c test2.c test3.c -o test

独立编译

gcc -Wall -g -c test1.c -o test1.o
gcc -Wall -g -c test2.c -o test2.o
gcc -Wall -g -c test3.c -o test3.o

gcc -Wall -g    test1.o test2.o test3.o -o test

使用独立编译的好处:

当一个项目中包含大量源文件时,当一个文件改动后,使用独立编译可以只编译改动的文件,
不必编译所有文件,从而节省编译时间。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值