gcc链接器选项“--format binary”?

时间:2013-11-29 04:41:40

标签: gcc linker

以下命令中“--format binary”选项的含义/用法是什么?。

ld -m elf_x86_64 --format binary --oformat elf64-x86-64 -r stub -o stub-image.o

1 个答案:

答案 0 :(得分:0)

-format binary选项指出输入文件(在本例中为stub)是原始二进制数据blob。

您显示的命令采用此“blob”并将其包装在 elf 文件中,类似于编译器创建的其他对象,并且适合链接到程序中。如果你有一个ROM编程工具,例如,它需要精灵数据而不是原始二进制文件,那么这种技巧也很有用。

blob放在.data部分,并为您创建三个符号(a.k.a.变量):

  • _binary_stub_start
  • _binary_stub_end
  • _binary_stub_size

如果您以通常的方式将stub-image.o与C程序链接,那么您可以像这样访问数据(您可以选择适合的任何指针类型):

extern char *binary_stub_start;