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

发布于 2024-12-09 13:50:21 字数 526 浏览 0 评论 0原文

我使用以下方法在 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 需要指定目标这“--输出”选项。

如何在 Makefile 中设置“--output”以便 objcopy 将使用用户的体系结构?

谢谢。

I've embedded a text file in a C program using the following method: 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 requires to specify the target with the "--output" option.

How can I set "--output" in Makefile so objcopy will use the user's architecture ?

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

撑一把青伞 2024-12-16 13:50:21

首先:您并没有尝试模拟 GCC ld 的 -b 功能,是吗?更详细地说:GCC ld 实际上可以加载多种二进制格式,请参阅 文档。如果这就是您想要实现的目标,类似:

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

可能会节省您整个 objcopy 调用。

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

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

应该扩展到通常的目标架构。再次声明:我没有关于此行为的文档,所以最好不要盲目依赖它。

Firstly: You are not trying to emulate the -b capability of the GCC ld, are you? In more verbose terms: The GCC ld can actually load a number of binary formats, see the documentation. If that's what you want to achieve, something like:

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

might save you the whole objcopy call.

While I'm not able to find documentation on the issue, the output of objdump -i seems to be sorted by preference, so

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

should expand to the usual target architecture. Stating again: I have no documentation on this behaviour, so better don't rely blindly on it.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文