链接时出错:链接器脚本



这个错误是什么意思?

section .data不能在段2中分配

这是Xtensa的裸金属GCC交叉工具链。我觉得这与段大小无关。

SECTIONS命令告诉链接器如何将输入节映射到输出节,以及如何将输出节放在内存中。SECTIONS命令的格式是:

 SECTIONS
 {
   sections-command
   sections-command
   ...
 }

我们可以通过使用BYTE、SHORT、LONG、QUAD或SQUAD作为输出节命令,在输出节中包含明确的数据字节。

当使用64位主机或目标时,QUAD和SQUAD是相同的;他们两者都存储8字节或64位值。当主机和目标都是32位,表达式被计算为32位。在这种情况下是QUAD存储一个32位的值0扩展到64位,SQUAD存储一个32位值符号扩展到64位

如果输出文件的对象文件格式具有显式的端序,这是正常情况,则值将以该端序存储。当对象文件格式没有明确的端序时,如,例如, S-records,该值将被存储在第一个输入对象文件的端序中。

注意- 这些命令只在节描述内工作,而不在节描述之间工作,因此以下命令将从链接器产生错误:

 SECTIONS { .text : { *(.text) } LONG(1) .data : { *(.data) } }

而这将工作:

 SECTIONS { .text : { *(.text) ; LONG(1) } .data : { *(.data) } }

我希望你现在可以解决你的错误!

最新更新