问题描述
以下命令中"--format binary"选项的含义/用途是什么?
What is the meaning/usage of '--format binary' options in below command ?.
ld -m elf_x86_64 --format二进制文件--oformat elf64-x86-64 -r stub -o stub-image.o
ld -m elf_x86_64 --format binary --oformat elf64-x86-64 -r stub -o stub-image.o
推荐答案
-format binary
选项指出输入文件(在本例中为stub
)是原始的二进制数据块.
The -format binary
option states that the input file, in this case named stub
, is a raw binary blob of data.
您显示的命令将这个'blob'并包装到 elf 文件中,类似于编译器创建的其他对象,并且适合链接到程序中.例如,如果您有一个ROM编程工具,它需要elf数据而不是原始二进制文件,则这种技巧也很有用.
The command you show takes this 'blob' and wraps it up in an elf file, similar to other objects created by the compiler, and suitable for linking into a program. This sort of trick is also useful if you have a ROM-programming tool, for example, that expects elf data rather than raw binaries.
斑点放在.data
部分中,并为您创建了三个符号(又名变量):
The blob is placed in the .data
section, and three symbols (a.k.a. variables) are created for you:
-
_binary_stub_start
-
_binary_stub_end
-
_binary_stub_size
_binary_stub_start
_binary_stub_end
_binary_stub_size
如果以通常的方式将stub-image.o
与C程序链接,则可以像这样访问数据(可以选择适当的任何指针类型):
If you link stub-image.o
with a C program, in the usual way, then you can access the data like this (you can choose whatever pointer type is appropriate):
extern char *binary_stub_start;
这篇关于gcc链接器选项"--format binary"?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!