可执行文件的生成

菜鸡刚学,写下笔记方便复习。

一个程序的转化处理过程可以如下表示:

.c后缀的源文件 (经过预处理)-> 变成 .i 后缀的源程序 (经过编译)-> .s后缀的汇编语言程序文件 (经过汇编后)-> .o后缀的可重定位目标程序 (经过链接)-> 可执行文件

以c ,i , s结尾的文件都是可读的文本文件。
.o结尾和可执行文件都是二进制文件。

预处理
处理源文件中以 “#” 开头的预编译指令,经过预编译处理后,得到的是以 .i 结尾的预处理文件,他没有了宏定义,仍是一个可读的文本文件,本质上还是C语言的代码。
编译
编译就是将预处理生成的 .i 文件 翻译成 汇编语言代码,该过程就是compile,编译后的文件内容,本质上是汇编语言程序代码。
汇编
经过编译后的文件,本质是汇编语言代码,还是可读的文本文件,但是cpu看不懂他,还需要将他翻译成cpu能读懂的二进制文件,将汇编指令一一对应,转化为机器指令序列。
链接
链接过程是将多个 .o 文件(可重定向目标程序)合并在一起, 生成可执行文件,这是因为主函数里调用了一些标准库里的写好的函数,需要将他们的.o文件合并在一起才能生成可执行文件。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值