知识杂项
- obj文件:当前源代码编译成二进制目标文件
- exe文件:将.obj文件与库文件.lib等文件链接生成的可执行文件
- 一个现代编译器的主要工作流程如下:
源程序(source code)→ 预处理器(preprocessor)→ 编译器(compiler)→ 汇编程序(assembler)→ 目标程序(object code)→ 连接器(链接器,Linker)→ 可执行程序(executables) - 映像:因为PE文件在装载时被直接映射到进程的虚拟空间运行。它是进程虚拟空间的映像。所以PE可执行文件很多时候被叫做映像文件。
windows的二进制文件格式PE/COFF
COFF文件的文件头包括
- 描述文件总体结构和属性映像头
- 描述文件中包含的段属性的段表
PE基于COFF的主要变化:
- 最开始部分不是COFF文件头,而是DOS MZ可执行文件格式的文件头和桩代码(DOS MZ File Header and Sub);
- 文件头中映像头扩展成映像头加PE扩展头部结构。
参考
《程序员自我修养》