BFD库

阅读数:7 评论数:0

跳转到新版页面

分类

Linux

正文

    Binary File Descriptor library。BFD库是一个GNU项目,它的目标是希望通过一个统一的接口来处理不同的目标文件。BFD项目本身是binutils项目的一个子项目。BFD把目标文件抽象成一个统一模型,比如在这个抽象模型中,最开始有一个描述整个目标文件总体信息的“文件头”,就跟我们实际的ELF文件一样,文件头后面是一系列的一段,每个段都有名字、属性和段的内容,同时还抽象了符号表、定位表、字符串表等类似的概念,使得BFD库的程序只要通过这个抽象的目标文件模型就可以实现操作所有BFD支持目标文件格式。

    gcc(更具体是GAS, GNU Assembler)、连接器ld、调试器GDB及binutils的其他工具都通过BFD库来处目标文件,而不是直接操作目标文件。这样做的最大好处就是将编译器和连接器同具体的文件格式隔离开来。