gpt4 book ai didi

linux - 使用 LD 将原始数据/资源链接到可执行文件

转载 作者:太空狗 更新时间:2023-10-29 12:21:42 27 4
gpt4 key购买 nike

直到现在,我一直使用 MSVC++ 下的资源从我的程序内部访问原始数据,而且我从未直接使用链接器,但现在我在 Linux 下,我正在使用交叉编译器生成 elf 文件。我和一个 friend 正在开发一个玩具操作系统。

我们需要在某个时候完成的一件事是将相当大的任意原始数据链接到可执行文件中。我们希望数据位于可执行文件的末尾附近,并且还需要能够获得指向该原始数据的指针。可能值得注意的是,GRUB 会在引导时将内核加载到内存中。

我们之前的想法之一是编写一个程序将数据转换为 C 源文件,其中数据表示为字节数组,但我们认为这有点困惑,我们宁愿将其链接起来直接输入。

有什么见解吗?我不需要可怕的细节,只需要对需要做的事情做一个大致的概述。我认为我们可能必须对链接描述文件进行一些更改。

最佳答案

看看在完成链接后调用 objdump --add-section 以将任意数据添加到 ELF 文件。

或者,如果您正在编写内核,您可以执行 Linux 加载 initrd 的操作,让 GRUB 加载您的内核,然后将数据单独加载到已知内存位置并访问它那样。

关于linux - 使用 LD 将原始数据/资源链接到可执行文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4419077/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com