elf指executable and linking format,不仅包含可执行文件,也包含库文件,包括静态库和动态库。
准备的说,也就是三种(这不废话吗):
可执行文件
静态链接库
动态链接库
要观察ELF的具体信息,可以用以下几个工具nm: Lists symbols from object files.
objdump: Displays detailed information from object files.
readelf: Displays information about ELF object files.
静态链接库
Text:二进制码,代表逻辑本身
Data:初始化过了的全局以及静态的C变量,
Bss:未初始化的全局C变量,这一部分只算是占位,却不占用任何空间。目标文件格式为了节省空间特意把初始化过的变量和未初始化的变量区别对待,这样做的方式就是:未初始化的变量不占任何空间。
Symtab:符号表。符号表含有本编译模块定义和引用的函数和全局变量的符号信息。
Rel data:重定位信息
Bss
在C语言中,没有显式初始化的静态变量会被