如何编写链接器

The*_*ark 16 c compiler-construction linker interpreter vm-implementation

我为C编写了一个输出字节代码的编译器.这样做的原因是能够为在多个平台上运行的嵌入式平台编写应用程序.

我有编译器和汇编程序.

我需要编写一个链接器,并且卡住了.

对象格式是一个自定义格式,围绕字节码解释器设计,所以我真的不能使用任何现有的链接器.

我最大的障碍是如何组织目标代码以输出链接的二进制文件.此时不需要动态链接.我需要先让静态链接工作.

APr*_*mer 18

http://linker.iecc.com是我对这个主题的唯一一本书.


gre*_*olf 16

Ian Lance Taylor是黄金链接器(现为binutils的一部分)的主要开发人员之一,发布了一系列关于链接器如何工作的博客.你可以在这里找到它.

  • 以上链接指向该系列的第一篇文章。有关所有帖子的列表,请参阅 https://www.airs.com/blog/index.php?s=li​​nkers (4认同)

the*_*mis 5

我是第二本"连接器和装载机"一书.您声明您的对象格式是自定义格式.如果格式在您的控制之下,您可以考虑将ELF格式与字节码一起用作新的机器架构,la x86,SPARC,ARM等.GNU binutils源代码具有足够的可扩展性,允许您合并"架构" .