1,执行预处理命令,解析宏定义,进行宏替换
2,处理包含文件,将头文件嵌入到原文件中。
3,对每个源文件编译,对应生成各自的obj文件。
4,对各个obj文件链接,生成exe。
在创建dll文件时,有所不同,当所有的obj文件链接之后,会生成一个dll文件。如果连接器检测到dll的源文件中输出了至少一个函数和变量,那么连接器还会生成一个lib文件。这个lib文件很小,只是列出了所有被导出的函数和变量的符号名(符号表)。
当所有的obj模块都创建完毕后,链接器将obj合并,产生一个可执行镜像exe,其中有个导入段,这个导入段包含了所有他需要的dll模块的名称。