程序编译链接的四个过程

一个程序从.c文本文件成为一个可执行文件需要进行四个过程。
一:预编译过程,.c文件经过预编译成为.i文件。预编译过程主要处理源代码文件中那些以“#”开头的预编译指令,如#include,#define等。
linux环境下的指令为:gcc -E main.c -o main.i 。
主要处理规则为:
1.展开所有的宏定义;
2.处理#if,#endif等预编译指令;
3.将#include<>包含的文件插入到相应位置;
4.删除所有的注释;
5.添加行号和文件名标识;
6.保留所有的#pragma编译器指令。
二:编译过程,.i文件经过编译成为.s文件。编译过程形成的是汇编文件。
linux环境下的指令为:gcc -S main.i -o main.s 。
三:汇编过程,.i文件经过该过程成为.o目标文件,目标文件里都是机器可以理解的二进制代码。
linux环境下的指令为:gcc -c main.s -o main.o 。
四:链接过程,.o文件经过链接才能形成最终的可执行文件。
linux环境下的指令为:gcc -o main main.o 。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值