【发布时间】:2015-05-29 05:06:33
【问题描述】:
这个错误是什么意思?
section .data 不能在段 2 中分配
这是用于 Xtensa 的裸机 GCC 交叉工具链。我觉得这与段大小无关。
【问题讨论】:
-
代码更清晰...
-
这个错误一般是什么意思?
标签: linker-scripts
这个错误是什么意思?
section .data 不能在段 2 中分配
这是用于 Xtensa 的裸机 GCC 交叉工具链。我觉得这与段大小无关。
【问题讨论】:
标签: linker-scripts
SECTIONS 命令告诉链接器如何将输入段映射到输出段,以及如何将输出段放置到内存中。 SECTIONS 命令的格式为:
SECTIONS
{
sections-command
sections-command
...
}
我们可以通过使用 BYTE、SHORT、LONG、QUAD 或 SQUAD 作为输出部分命令在输出部分中包含显式数据字节。
使用 64 位主机或目标时,QUAD 和 SQUAD 是相同的;他们 两者都存储一个 8 字节或 64 位的值。当主机和目标都是 32 位,表达式被计算为 32 位。在这种情况下,四 存储一个 32 位值零扩展到 64 位,SQUAD 存储一个 32 位值符号扩展为 64 位。
如果输出文件的目标文件格式有明确的字节序,这是正常情况,值将存储在那个字节序中。 当目标文件格式没有明确的字节序时,和例如一样,S-records的值将存储在第一个输入对象文件的字节序中。
注意——这些命令只在部分描述中起作用,而不是在它们之间,因此链接器会产生以下错误:
SECTIONS { .text : { *(.text) } LONG(1) .data : { *(.data) } }
而这将起作用:
SECTIONS { .text : { *(.text) ; LONG(1) } .data : { *(.data) } }
我希望你现在可以解决你的错误!!!
【讨论】: