3.7 本章小结
在这一章中我们深入分析了各种目标文件格式,主要介绍了ELF文件的代码段、数据段和BSS段等与程序运行密切相关的段结构。除此之外,我们还详细介绍了ELF文件的文件头、段表、重定位表、字符串表、符号表、调试表等相关结构。
从这一章中我们了解到,无论是可执行文件、目标文件或库,它们实际上都是一样基于段的文件或是这种文件的集合。程序的源代码经过编译以后,按照代码和数据分别存放到相应的段中,编译器(汇编器)还会将一些辅助性的信息,诸如符号、重定位信息等也按照表的方式存放到目标文件中,而通常情况下,一个表往往就是一个段。
从这一章中我们了解到,无论是可执行文件、目标文件或库,它们实际上都是一样基于段的文件或是这种文件的集合。程序的源代码经过编译以后,按照代码和数据分别存放到相应的段中,编译器(汇编器)还会将一些辅助性的信息,诸如符号、重定位信息等也按照表的方式存放到目标文件中,而通常情况下,一个表往往就是一个段。
有了这些目标文件之后,接下来的问题就是如何将它们组合起来,形成一个可以使用的程序或一个更大的模块,这就是静态链接所要解决的问题,我们将在下一章中详细介绍。