ELF - elf64的数据结构
目前,PC平台流行的 可执行文件格式(Executable) 主要包含如下两种,它们都是 COFF(Common File Format) 格式的变种。
Windows下的 PE(Portable Executable)
Linux下的 ELF(Executable Linkable Format)
目标文件就是源代码经过编译后但未进行链接的那些中间文件(Windows的.obj
和Linux的.o
),它与可执行文件的格式非常相似,所以一般跟可执行文件格式一起采用同一种格式存储。在Windows下采用PE-COFF文件格式;Linux下采用ELF文件格式。
事实上,除了可执行文件外,动态链接库(DDL,Dynamic Linking Library)、静态链接库(Static Linking Library) 均采用可执行文件格式存储。它们在Window下均按照PE-COFF格式存储;Linux下均按照ELF格式存储。只是文件名后缀不同而已。
动态链接库:Windows的
.dll
、Linux的.so
静态链接库:Windows的
.lib
、Linux的.a
本只着重介绍ELF64相关的内容!