链接阶段gnu库

链接器

在linux中,链接器分为

  • 动态链接器:ld-linux.so,路径一般为/lib/i386-linux-gnu/ld-2.31.so
  • 静态链接器:ld,路径一般为/usr/bin/x86_64-linux-gnu-ld.bfd

静态链接器x86_64-linux-gnu-ld.bfd名字中的bfd是什么?

总所周知,linux的文件后缀名没有任何意义,和windows不同,其不会决定文件的属性。后缀名一般用于提示文件的属性或者其他特性。例如,这里的bfd的作用是说明静态链接器使用了libbfd,通过以下命令的执行结果可以得到验证

ld_ldd

静态链接器使用了libbfd-2.34-system.so,bfd的全称是Binary File Descriptor library。libbfd可以用来解析任意格式的对象文件。这也是静态链接器需要应对的。参考官网文档:This version of ld uses the general purpose BFD libraries to operate on object files. This allows ld to read, combine, and write object files in many different formats—for example, COFF or "a.out". Different formats may be linked together to produce any available kind of object file

TODO

  • bfd的实现:usr/local/include/bfd.h

链接阶段gnu库
http://example.com/链接阶段gnu库/
作者
Yw
发布于
2024年4月24日
许可协议