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

简介:

    如果你写的代码是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,如需转载请自行联系原作者

相关文章
|
1月前
|
编译器 C语言 C++
【C进阶】C程序是怎么运作的呢?-- 程序环境和预处理(上)-1
【C进阶】C程序是怎么运作的呢?-- 程序环境和预处理(上)-1
|
1月前
|
编译器 Linux C++
【C进阶】C程序是怎么运作的呢?-- 程序环境和预处理(下)
【C进阶】C程序是怎么运作的呢?-- 程序环境和预处理(下)
|
1月前
【C进阶】C程序是怎么运作的呢?-- 程序环境和预处理(上)-2
【C进阶】C程序是怎么运作的呢?-- 程序环境和预处理(上)-2
|
3月前
|
数据采集 机器学习/深度学习 数据可视化
分享261个Python源码源代码总有一个是你想要的
分享261个Python源码源代码总有一个是你想要的
127 0
|
5月前
|
算法 编译器 C语言
算法小白的心得笔记:分清楚执行程序和动态链接库的编译方式。
-fPIC 选项:这个选项告诉编译器生成位置无关代码(Position Independent Code)。这种代码同样可以在内存的任何位置执行,因为它使用的是相对地址而不是绝对地址。这对于动态库是必要的,因为动态库在被加载时,其在内存中的位置是不确定的。
27 0
|
9月前
|
安全 Java 编译器
Java源代码到用户使用都经历了哪些阶段
Java源代码到用户使用都经历了哪些阶段
55 0
|
9月前
|
自然语言处理 Linux C语言
C语言代码到可执行文件的过程
我们写好的代码是不能直接运行的,想要运行需要预编译、编译、汇编、链接四大步骤变成可执行目标文件,本文将简单介绍这四大步骤。
|
9月前
|
自然语言处理 编译器 Linux
gcc编译的过程
GCC 仅仅是一个编译器,没有界面,必须在命令行模式下使用。通过 gcc 命令就可以将源文件编译成可执行文件。
137 0
|
11月前
|
存储 自然语言处理 IDE
【C进阶】——我们写的代码是如何一步步变成可执行程序(.EXE)的?
【C进阶】——我们写的代码是如何一步步变成可执行程序(.EXE)的?
595 0
|
机器学习/深度学习 编译器 C语言
【程序的编译和预处理】源文件到可执行程序到底经历了什么?
【程序的编译和预处理】源文件到可执行程序到底经历了什么?
104 0
【程序的编译和预处理】源文件到可执行程序到底经历了什么?