一段代码到可执行程序所有经历

简介:

    如果你写的代码是hello.c,你的程序将经历下面的步骤到达硬盘或者内存成为可执行文件。

第一步:hello.c(文本)经过预编译生成hello.i(文本)

第二步:hello.i(文本)经过编译器生成hello.s(汇编。文本)

第三步:hello.s(文本)经过汇编器生成hello.o(二进制)。

第四步:hello.o(二进制)经过链接器生成hello可执行文件。


参考文献:深入理解计算机系统。



本文转自 8yi少女的夢 51CTO博客,原文链接:http://blog.51cto.com/zhaoxiaohu/1703852,如需转载请自行联系原作者

相关文章
|
负载均衡 Cloud Native Java
【秒懂·云原生】微服务篇 —— 微服务究竟是什么?
【秒懂·云原生】微服务篇 —— 微服务究竟是什么?
2320 0
【秒懂·云原生】微服务篇 —— 微服务究竟是什么?
|
11月前
|
算法 Linux API
.NET图像处理的艺术 — 从加载到添加文本,一步步领略图像处理的奇妙世界
.NET图像处理的艺术 — 从加载到添加文本,一步步领略图像处理的奇妙世界
130 2
|
12月前
|
消息中间件 Kafka Go
使用github.com/IBM/sarama 编写消费kafka的功能
使用github.com/IBM/sarama 编写消费kafka的功能
|
Go 开发者
|
存储 缓存 文件存储
如何保证分布式文件系统的数据一致性
分布式文件系统需要向上层应用提供透明的客户端缓存,从而缓解网络延时现象,更好地支持客户端性能水平扩展,同时也降低对文件服务器的访问压力。当考虑客户端缓存的时候,由于在客户端上引入了多个本地数据副本(Replica),就相应地需要提供客户端对数据访问的全局数据一致性。
31982 78
如何保证分布式文件系统的数据一致性
vscode设置自动保存步骤
vscode设置自动保存就不用每次要运行时候去先保存一下才能加载新页面了
18749 0
vscode设置自动保存步骤
|
缓存 Java 中间件
谈谈你对Nacos配置动态更新原理的理解,这道题一定要会
Nacos作为阿里的开源中间件在Spring Cloud生态以后,不管是作为配置中心,还是作为注册中心,因为它简单易用的特性,在互联网公司被广泛运用。随后,大家会发现Nacos相关的面试题也就越来越多了。
335 0
|
消息中间件 存储 搜索推荐
如何设计一个消息队列?
**如果让你来设计一个 MQ,该如何下手?需要考虑哪些问题?又有哪些技术挑战?** 对于 MQ 来说,不管是 RocketMQ、Kafka 还是其他消息队列,**它们的本质都是:一发一存一消费。**下面我们以这个本质作为根,一起由浅入深地聊聊 MQ。
1918 2
|
存储 关系型数据库 MySQL
Mysql数据库无法保存表情包和复杂汉字
Mysql数据库无法保存表情包和复杂汉字
437 0
|
Web App开发 测试技术 iOS开发
Mac OS 安装Wget
有些时候,我们希望直接通过 wget 来下载文件。 Mac OS 可以通过以下几种方式安装 Wget: 1、使用 port 命令 sudo port install wget2、使用 brew 命令 sudo brew install wget3、使用浏览器下载一个Wget的源码包,http://www.
31705 0