当前位置: 编码机 >> 编码机资源 >> 深入理解计算机系统之三C程序编码
假设有一个hello.c程序,代码如下:
#includestdio.h
intmain()
{
printf("hello,world\n");
return0;
}
我们在unix系统中编译
gcc-ohellohello.c
编译后执行./hello,就能看到结果了。
当我们在系统上编译hello程序时,系统做了些什么?
hello程序的生命周期是从一个高级C语言程序开始的,因为这种形式能够被人读懂。然而,为了在系统上运行hello.c程序,每条C语句都必须被其他程序转化为一系列的低级机器语言指令。然后这些指令按照一种称为可执行目标程序的格式打好包,并以二进制磁盘文件的形式存放起来。目标程序也称为可执行目标文件。
在Unix系统上,从源文件到目标文件的转化是由编译器驱动程序完成的:
在这里,GCC编译器驱动程序读取源程序文件hello.c,并把它翻译成一个可执行目标文件hello。这个翻译过程可分为四个阶段完成,如图所示。执行这四个阶段的程序(预处理器、编译器、汇编器和链接器)一起构成了编译系统(
转载请注明:http://www.aideyishus.com/lkzp/6930.html