从Hello World开始认识计算机系统(c语言)
一枚编程小白从2018.9.1的学习历程…
世界上没有什么是努力办不到的,如果有,那么就更努力一些吧
1.在Unix系统上,源文件到目标文件是如何转化的呢?
从源程序也就是hello.c经过预处理(cpp)也就是那些#引入的头文件啦,把它直接插到程序中,结果呢,得到hello.i这个时候程序就变得完整一丢丢,那么我们继续把hello.i经过编译器(cc1)搞成了hello.s变成了汇编程序(文本)),再通过汇编器(as)生成了可重定位目标程序hello.o(二进制),它的字节编码是机器语言指令而不是字符,最后最后,再通过链接器(ld),因为我们可能要调用printf函数,printf函数放在哪里呢,放在printf.o的预编译目标文件中,链接完了以后就变成真正的可执行文件,再让它加载到存储器中,让系统执行。