我正在尝试构建一个自定义二进制文件,其中的数据主要来自.o文件,该文件是从一个大的C文件编译而来,如下所示:
int a[] = { ... };
int b[] = { ... };
int c[] = { ... };
这个C文件基本上包含一大组数据数组,所有数据都在同一节中声明。这里一个重要的注意事项是我无法修改此C文件的内容。
使用LD脚本,objcopy或任何其他工具,是否有可能按特定顺序编织一组仅包含一个或几个这些变量的输出二进制文件(不一定与它们出现的顺序相同) C文件)?
我尝试使用LD脚本,但最精细的包含似乎是目标文件的一部分。为了实现我想要的东西,我需要能够直接引用符号。
输出最终将是一个简单的二进制文件(使用 objcopy -Obinary 生成),仅包含所需数组的串联。所以对于这个问题,我们可以假设我只需要在一个部分中输出所有数据(即没有代码,也没有任何其他输入,而不是这个大C文件。)