【发布时间】:2011-10-13 17:13:53
【问题描述】:
我使用以下方法在 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 使用用户的架构?
谢谢。
【问题讨论】:
-
这个问题当然等同于问“如何从命令行学习正确的架构规范?”,但我并不清楚答案。
-
我尝试使用 'uname' 但它没有给我解决方案。
-
是的。我也试过了。我查看了
file和ar和nm。我唯一的想法是为file定制一个magic文件,但我不知道如何开始组装这样的东西。 -
如果您告诉我们您拥有什么操作系统,将会有所帮助。不同的系统有不同的语法来询问架构。
-
既然您在这里谈到“用户”:请请不要将此 objcopy hack 引入生产或将其发布到野外。这是一个漂亮的 hack,但只是作为一个 hack:展示技术可以做什么。在任何实际使用中,只需在运行时加载文件或使用简单的 sed/awk/perl/whatever 魔法将其转换为 C 文件。
标签: gcc gnu-toolchain objcopy