这个错误意味着什么?
部分.data无法在第2段中分配
这适用于Xtensa的裸机GCC交叉工具链。我觉得这与分段大小无关。
答案 0 :(得分:0)
SECTIONS命令告诉链接器如何将输入节映射到输出节,以及如何将输出节放在内存中。 SECTIONS命令的格式为:
SECTIONS
{
sections-command
sections-command
...
}
我们可以使用BYTE,SHORT,LONG,QUAD或SQUAD作为输出节命令,在输出节中包含显式的数据字节。
使用64位主机或目标时,QUAD和SQUAD是相同的;他们 两者都存储一个8字节或64位的值。主机和目标都是 32位,表达式计算为32位。在这种情况下QUAD 存储32位值零扩展到64位,SQUAD存储32位 位值符号扩展为64位。
如果输出文件的目标文件格式具有显式字节序,这是正常情况,则该值将以该字节顺序存储。当目标文件格式没有显式字节序时,就像例如,S-records一样,该值将存储在第一个输入对象文件的字节序中。
注意 - 这些命令只能在部分描述中使用,而不能在它们之间工作,因此以下内容将从链接器产生错误:
SECTIONS { .text : { *(.text) } LONG(1) .data : { *(.data) } }
虽然这样可行:
SECTIONS { .text : { *(.text) ; LONG(1) } .data : { *(.data) } }
我希望你现在可以解决你的错误!!!