使用 objcopy 将文本文件添加到二进制文件,但 objcopy 抱怨架构

Posted

技术标签:

【中文标题】使用 objcopy 将文本文件添加到二进制文件,但 objcopy 抱怨架构【英文标题】:Adding text files to binaries with objcopy, but objcopy complains about architecture 【发布时间】:2015-08-17 21:00:45 【问题描述】:

我已将 embedding text files(或任何其他相关资源)读入二进制文件,我正在这样做:

objcopy -I binary -O elf32-littlearm --binary-architecture arm myfile.txt myfile.txt.o

但是,与教程不同的是,我得到以下响应:

ld: unknown architecture of input file `myfile.txt' is incompatible with arm output

该示例使用 i386,但这似乎也不是问题,因为我也不能这样做。

有没有一种方法可以强制 objcopy 忽略它是一个文本文件而不是有效的兼容二进制文件这一事实,所以它只是将它逐个字节地复制到我的程序中?

【问题讨论】:

【参考方案1】:

对于仅数据对象文件(无代码),您可以跳过binary-architecture 选项。

所以以下应该可以工作

objcopy -I binary -O elf32-littlearm myfile.txt myfile.txt.o 生成目标文件。

【讨论】:

以上是关于使用 objcopy 将文本文件添加到二进制文件,但 objcopy 抱怨架构的主要内容,如果未能解决你的问题,请参考以下文章

Objcopy 获取目标文件 64 位二进制文​​件

Automake:在二进制目标中嵌入文本文件

如何使用objcopy或libelf将elf文件的一部分替换为另一部分,以便将其加载到内存中?

Objcopy,它如何进行二进制输出?

binutils工具集之---objcopy,ranlib,size

从 SREC 文件中删除 S0 记录