C语言的编译链接过程

参考bolg:https://blog.csdn.net/qinghe0808/article/details/53039801/

上述的blog比较详细,在linux下进行操作的,看不明白的参考即可,下面列出关键要素

C语言的bi'a编译过程主要包括:

四个过程:预处理、编译、汇编、链接

1)预处理:首先程序的宏替换去注释头文件按照路径展开、以及条件编译

2)编译:把C语言转成汇编语言

3)汇编:把汇编语言代码翻译成目标机器指令的过程。

对于被翻译系统处理的每一个C语言源程序,都将最终经过这一处理而得到相应的目标文件。

目标文件中所存放的也就是与源程序等效的目标的机器语言代码。
汇编程序生成的目标文件实际上是可重定位文件,它其中包含有适合于其它目标文件链接来创建一个可执行的或者共享的目标文件的代码和数据。

也就是说,由汇编程序生成的目标文件并不能立即就被执行,它并非最终可执行的二进制序列,因为其中可能还有许多没有解决的问题。那么这个就是链接程序的工作了。

4)编译:生成可执行的二进制代码。

猜你喜欢

转载自blog.csdn.net/u011436427/article/details/81630965