1

我正在尝试构建一个自定义二进制文件,该文件的数据主要来自一个 .o 文件,该文件由一个大 C 文件编译而成,如下所示:

int a[] = { ... };
int b[] = { ... };
int c[] = { ... };

这个 C 文件基本上包含一大组数据数组,都在同一节中声明。这里有一个重要的注意事项是我不能修改这个 C 文件的内容。

是否可以使用 LD 脚本、objcopy 或任何其他工具以特定顺序(不一定与它们在 C 文件中出现的顺序相同)编织一组输出二进制文件,其中仅包含一个或几个这些变量)?

我尝试为此使用 LD 脚本,但包含的最精细粒度似乎是目标文件的部分。为了实现我想要的,我需要能够直接引用符号。

输出最终将是一个简单的二进制文件(使用objcopy -Obinary生成),仅包含所需数组的串联。所以对于这个问题,我们可以假设我只需要在一个部分中输出所有数据(即没有代码,也没有除了这个大的C文件之外的任何其他输入)。

4

0 回答 0