如何获取当前平台的BFD架构规范?

时间:2011-10-13 17:13:54

标签: gcc gnu-toolchain objcopy

我使用以下方法在C程序中嵌入了一个文本文件:http://www.linuxjournal.com/content/embedding-file-executable-aka-hello-world-version-5967

a.out:prog.c file.text
    objcopy --input binary --output elf64-x86-64 --binary-architecture i386 file.text file.o
    gcc prog.c file.o

objcopy 需要使用“--output”选项指定目标。

如何在Makefile中设置“--output”,以便objcopy使用用户的架构?

感谢。

1 个答案:

答案 0 :(得分:1)

首先:你不是要模仿GCC ld的-b能力,不是吗?用更详细的术语:GCC ld实际上可以加载多种二进制格式,请参阅the documentation。如果这就是你想要达到的目标,那就是:

 gcc prog.c -Wl,-b -Wl,binary file.o

可能会保存整个objcopy调用。

虽然我无法找到有关该问题的文档,但objdump -i的输出似乎按首选项排序,因此

 `objdump -i | head -n 2 | tail -n 1`

应该扩展到通常的目标架构。再说一遍:我没有关于这种行为的文档,所以最好不要盲目依赖它。