引言
hollo.c是大部分程序员写的第一个程序,本篇博客将介绍编译运行hello.c,操作系统将做的事情。
编译系统
hello.c是一个高级C语言代码,格式如下
#include <stdio.h>
int main()
{
printf("hello world\n");
return 0;
}
在系统中运行该程序,则必须把每一条C语言代码转化成低级机器语言指令,这些指令按照可执行目标文件的格式排列好,并在磁盘上以二进制文件的形式储存起来,形成可执行目标文件。
在我们使用的例如visual studio和devc++等软件,替程序员做好了这一切,如果我们使用gcc编译器可以逐步的看到,程序的变化。
在这里GCC驱动文件读取hello.c,并生成了可执行文件hello,这其中可以分为四个步骤,预处理,编译,汇编,链接,看起来比较乱,我们下面分别对其说明
预处理
命令:gcc -E hello.c -o hello.i
预处理是读取c源程序,对其中的伪指令(以#开头的指令,也就是宏)和特殊符号进行“替代”处理;经过此处理,生成一个没有宏定义、没有条件编译指令、没有特殊符号的输出文件。这个文件的含义同没有经过预处理的源文件是相同的&#