程序编译过程都经历了什么?

1.通常所说的编译的任务

将高级语言代码转换为可执行文件

2.编译过程的四个阶段

预处理、编译、汇编、链接

(1) 预处理

展开头文件,进行宏替换,删除注释,
添加行号和文件名标识,保留所有的#pragma编译器指令,
处理所有的预编译指令(如#if、#ifdef、#elif、#else、#endif)

(2) 编译

将预处理后的文件经过词法分析、语法分析、语义分析、代码优化后转换为汇编代码文件

(3) 汇编

将汇编代码解释为二进制的机器指令

(4) 链接

把各个模块之间相互引用的部分都处理好,使得各个模块之间能够正确地衔接;

3.Linux下程序的编译过程
gcc(C语言编译器)对应的Linux指令

		-E:只进行预处理
		-S:只进行编译处理
		-c:只进行汇编处理
		-o:指定输出文件名称

在linux下执行一段C代码,可以将这四个步骤依次进行,
各阶段的指令如下:

预处理:gcc -E test.c -o test.i
编译:gcc -S test.i -o test.s
汇编:gcc -c test.s -o test.o
链接:gcc test.o -o test.exe
运行:./test.exe
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值