我想创建类似静态链接器的东西,将对象.o
文件(由我们自己编译)程序附加到现有的可执行文件.elf
。
应该怎么做?
从我的角度来看,我们从.text
文件中获取.data
和.o
个部分,并将它们作为新部分添加到.elf
文件中(修复部分标题表和创建新的部分标题)。
但我不知道如何在.o
文件中添加.elf
文件导入。我应该在.rel
合并.elf
表和符号表吗?我如何正确修复指令中的偏移?如何知道是否应修复指令以及应将哪个指针插入到指令中? (在.o
个文件中,偏移量默认为零)
答案 0 :(得分:0)
您可以将gcc用于此目的。
$ gcc -o output file1.o file2.o
或者您想编写自己的链接器吗?在那种情况下,GCC和您自己的链接器之间应该有什么区别?