程序编译的过程

--从源文件到可执行文件的过程?以hello.cpp为例

分为四个过程,分别是预处理,编译,汇编,链接。

预处理->hello.i去掉注释,展开宏定义,处理预编译指令

编译->hello.s将预处理的文件进行词法分析,语法分析,语义分析产生汇编代码文件

汇编->hello.obj把汇编代码翻译成目标机器指令,生成目标文件(包括代码段、数据段)

链接->hello.out或者hello.exe

 

其中链接分为静态链接和动态链接。

静态链接:是将汇编生成的目标文件.obj与引用到的库一起打包到可执行文件

动态链接动态链接中引用的库是在程序运行时才被载入。不同的程序如果调用同一个库,那么在内存里只需要有一份该共享库的实例,避免了空间浪费。

posted @ 2020-04-28 16:06  Conan-Peng  阅读(310)  评论(0)    收藏  举报