ELF文件分类说明实例ELF文件类型这类文件包含了代码和数据,可可重定位文件Linux的.0以被用来链接成可热行文件或共Windows的.obj(RelocatableFile)享目标文件,静态链接库也可以归为这一类这类文件包含了可以直接执行的可执行文件/bin/bash程序,它的代表就是ELF可执行文Windows的.exe(ExecutableFile)件这种文件包含了代码和数据,既Linux的.so共享目标文件可以链接成为新的自标文件,也Windows的DLL(SharedObjectFile)可以链接成为可执行文件当系统以外终止时,系统可以将核心转储文件Linux下的coredump该进程的地址空间的内容及终止(CoreDump File)时的一些其他信息转储到核心转储文件
2026/9/22 ELF文件分类 ELF文件类型 说明 实例 可重定位文件 (Relocatable File) 这类文件包含了代码和数据,可 以被用来链接成可执行文件或共 享目标文件,静态链接库也可以 归为这一类 Linux的.o Windows的.obj 可执行文件 (Executable File) 这类文件包含了可以直接执行的 程序,它的代表就是ELF可执行文 件 /bin/bash Windows的.exe 共享目标文件 (Shared Object File) 这种文件包含了代码和数据,既 可以链接成为新的目标文件,也 可以链接成为可执行文件 Linux的.so Windows的DLL 核心转储文件 (Core Dump File) 当系统以外终止时,系统可以将 该进程的地址空间的内容及终止 时的一些其他信息转储到核心转 储文件 Linux下的core dump
自标文件的结构intglobal_init_var=84int global uinit var:FileHeadervoid func1(int i)Vprintf("%d\n",i);ctionintmain(void)为什么要将数据和代码分开存放?staticintstatic_varstatic intstatic var2.datasectioninta=1;intb;func1(global initvar +.bsssectionstatic_var +a +b);return O;2026/9/22
2026/9/22 目标文件的结构 File Header .text section .data section .bss section int global_init_var = 84; int global_uinit_var; void func1(int i) { printf("%d\n", i); } int main(void) { static int static_var = 85; static int static_var2; int a = 1; int b; func1(global_init_var + static_var + a + b); return 0; } 为什么要将数据和 代码分开存放?