《Linux ELF与C/C++底层运行机制全景揭秘》 第 1 章 导论 1.ELF 文件的三种基本形态 (.o 可重定位文件、.so 共享库、Executable 可执行文件) 1. 1可重定位文件 (Relocatable File, .o 文件) 诞生阶段:由编译器和汇编器生成。当你执行 gcc -c main.c -o main.o 时,得到的就是可重定位文件。静态库(.a 文件)本质上也就是把多个 .o 文件打包压缩在一起的集合(类似于零部件仓库)。 核心特征: 地址未定:在这个阶段,代码里所有的函数地址、全局变量地址全都是 0x00000000(或者相对偏移)。因为此时编译器不知 …