我能用LLVM的链接器(或相关工具)把一个文件中的数据嵌入到一个目标文件中吗?

编程语言 2026-07-09

使用GNU链接器,可以将一个文件的内容嵌入到目标文件中(最终可以嵌入到可执行文件中)。例如,假设我的输入是 foo.bin,我想要一个名为 bar.o 的目标文件;我会这样写:

ld --format binary --relocatable -o bar.o foo.bin

(在 这个问题 中有更详细的讨论)。是否可以用LLVM的链接器来实现?或相关的LLVM工具?如果可以,怎么做?如果不行——这是一个真正的缺陷,还是只是GNU ld在你愿意它为你做的事情上非常“灵活”呢?

注:我主要关注GNU/Linux系统,其可执行文件格式为ELF。

解决方案

我认为用llvm的 lld做不到,但可以用 llvm-objcopy。你可能需要用 -O指定体系结构。

llvm-objcopy -I binary -O elf32-i386 foo.bin bar.o
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章