您绝对不能在--format=binary方法中指定链接器生成的二进制符号名称。但是,通过-L选项,您可以指定二进制文件的路径,而链接器将在任何路径中看到它,而无需在文件名中指定路径,从而使符号名简短而美观。
但是,让我们更多地讨论自定义符号名称。您可以用很少的内联汇编器魔术(incbin指令)来做到这一点。准备汇编文件,例如:
.section .rodata
.global MyData
.type MyData, @object
.align 4
MyData:
.incbin "longpath/to/my/binary/MyData.bin"
.global MyData_size
.type MyData_size, @object
.align 4
MyData_size:
.int MyData_size - MyData
Run Code Online (Sandbox Code Playgroud)
并使用以下代码将其与您的C代码链接在一起:
extern char MyData[];
extern unsigned MyData_size;
Run Code Online (Sandbox Code Playgroud)
另外(与上面列出的链接器方法一样),您可以使用简单的形式:
.incbin "MyData.bin"
Run Code Online (Sandbox Code Playgroud)
并指定-Ilongpath/to/my/binary/为GCC选项。