如何获取当前平台的BFD架构规范?
我使用以下方法在 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
首先:您并没有尝试模拟 GCC ld 的
-b
功能,是吗?更详细地说:GCC ld 实际上可以加载多种二进制格式,请参阅 文档。如果这就是您想要实现的目标,类似:可能会节省您整个 objcopy 调用。
虽然我无法找到有关该问题的文档,但 objdump -i 的输出似乎是按偏好排序的,因此
应该扩展到通常的目标架构。再次声明:我没有关于此行为的文档,所以最好不要盲目依赖它。
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: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, soshould expand to the usual target architecture. Stating again: I have no documentation on this behaviour, so better don't rely blindly on it.