3.1 目标文件的格式
- 目标文件就是编译后生成的.o文件,它的格式和可执行文件的格式是非常相似的。
- 不光可执行文件按照可执行文件的格式存储,动态链接库和静态链接库也是按照可执行文件的格式存储的。
- ELF文件可以划分为以下几种格式:
ELF文件类型 | 说明 | 实例 |
---|
可执行文件 | 即可以直接运行的文件 | linux的可执行文件,windows的exe文件 |
可重定位文件 | 这类文件包含了代码和数据,可以被用来链接成可执行文件或共享目标文件 | linux的.o文件,windows的.obj文件 |
共享目标文件 | 这类文件可在以下两种情况下使用:1、链接器将其和其他可重定位文件或共享目标文件链接,生成可执行文件或者共享目标文件。2、动态链接器可以将几个这种共享目标文件结合,形成进程映像的一部分来运行。 | linux的.so 文件,windows的.dll文件 |
核心转储文件 | 进程意外终止时,存储进程信息的文件 | linux的core dump |
%file /bin/bash
/bin/bash: Mach-O 64-bit executable x86_64
# file /lib32/ld-2.27.so
/lib32/ld-2.27.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, BuildID[sha1]=2a8a8730694acd1dcc1bfd2c97af7e6c1650236d, stripped