目标文件的格式及其种类

目前PC平台的可执行文件格式,主要有Windows下的PE(Portable Executable)和Linux的ELF(Eexcutable Linkable Format)他们都是COFF(common file format)格式的变种。

1.定义

        目标文件就是源代码编译后但未进行链接的那些中间文件(windows的.obj和Linux下的.o).他跟可执行文件的内容与结构很相似,一般跟可执行文件格式一起采用一种格式存储。广义上我们将目标文件与可执行文件看作一种类型。在windows下我们通称他们为PE-COFF文件格式。在linux下,可以将他们称为ELF文件。

       不光是可执行文件(windows的.exe和linux下的ELF可执行文件)按照可执行文件格式存储。动态链接库(DLL)(windows的.dll和linux的.so)及静态链接库)(windows的.lib和linux的.a)文件都按照可执行文件格式存储。他们在windows下都按照PE-COFF格式存储,Linux下按照ELF格式存储。

       静态链接库稍有不同,他是把很多目标文件捆绑在一起形成一个文件,在加上一些索引,可以简单理解为一个包含很多目标文件的文件包。

2.种类

      一般包括三种,分别为可重定位的目标文件、可执行的目标文件和可共享的目标文件。

目标文件的格式及其种类_第1张图片

可在Linux下使用file命令来查看相应的文件格式。

目标文件的格式及其种类_第2张图片

 

你可能感兴趣的:(linux)