在这个互联网时代,很多人都选择了计算机专业,而只要是计算机专业的小伙伴,可能都会学C语言,但是大家是否都清楚C语言编译的完整过程呢,今天我就带着大家一起来做个解密吧。
C语言相对于汇编语言是一种高级语言,要想在系统上运行,需要通过编译器把它转换成机器能够读懂的可执行的代码。
以Linux系统上的gcc为例,通常我们编译一个源文件都是用下面的命令:
$gcc hello.c –o hello
![fe17c821461ea4dae41f54cb06d18564.png](https://i-blog.csdnimg.cn/blog_migrate/f83bef90d941faf53920500e6a209020.png)
编译成功后,目录里会生成hello这个程序,直接运行它可以看到结果。
$./hello Hello World!
但hello这个程序是怎么生成的呢,其实中间还是有好几步的。用下面这个命令重新编译一下,你可以看到所有的中间文件。
$gcc -save-temps hello.c –o hello $ls hello hello.c hello.i hello.o hello.s
C编译器的编译过程主要分成四步:
(1) 预处理
(2) 编译
(3) 汇编
(4) 连接