Content #
ELF 作为一种文件格式,它究竟在被哪些类型的文件使用呢?
在 elf.h 头文件的定义中,ELF 格式可以应用在四种不同的文件类型上,它们对应的宏常量分别是 ET_REL、ET_DYN、ET_EXEC,以及 ET_CORE。
这四种 ELF 文件类型,虽然名称各不相同,但其内部数据的整体组织方式都遵循同样的 ELF 文件格式标准。而不同点在于,由于每种文件类型的功能定位各不相同,因此其内部的 ELF 格式组成结构也各有差异。
就拿可重定位文件来说吧,该类型文件可用于支持大型项目的增量式开发,也就是将程序中可以模块化、独立分发的功能进行单独编译,并形成可重定位文件。而依赖于这些功能实现的应用程序代码,便可与这些可重定位文件一起编译。最后,在经过链接器的静态链接处理后,便能够得到程序对应的可执行文件。这种方式的好处在于,当每次程序功能发生变化时,都可以将需要重新编译的代码约束在最小的范围。