<Linux>Linux对C程序的调试过程--gcc的编译过程

本文详细介绍了使用GCC编译器将C程序从源代码到可执行文件的整个编译流程,包括预处理、编译、汇编和链接四个阶段,并通过一个具体的示例程序展示了每个阶段的具体操作。

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

作者:wsg

时间:2017年8月21日


一、gcc对C程序的编译命令为:

gcc 源文件名 -o 目标文件名

如:gcc a.c -o a,这样就生成了可执行文件a。实际上,这并不是一步生成的,中间还经历了预处理、编译、汇编、链接。

1、预处理:将.c文件生成.i文件。

.c-->.i命令为:

gcc a.c -o a.i -E

2、编译:将.i文件生成.s文件。

.i-->.s命令为:

gcc a.i -o a.s -E

3、汇编:将.s文件生成.o文件。

.s-->.o命令为:

gcc a.s -o a.o -c


4、链接:将.o文件生成可执行文件

 .o-->(可执行文件):

gcc a.o -o a


二、下面写一个例子程序来具体看一下步骤:

/**示例:test.c**/
#include <stdio.h>
#define MAX 3

int main(void)
{
	int a;
	a = MAX;
	printf("%d\n", a);
	
	return 0;
}
三、图示:

1、执行gcc test.c -o test.i -E命令生成test.i文件,再用cat test.i命令查看,如下:

可见这一步只是将程序中的MAX替换成了宏定义中定义的数3,这是一个预处理的步骤。

2、执行gcc test.i -o test.s -S命令生成汇编源程序:

assembler source就是汇编源程序的意思。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值