ZHCUAU3J January 2018 – March 2024
除非使用 UNORDERED 运算符,否则 SECTIONS 指令的 GROUP 选项会强制按列出的顺序连续分配多个输出段。例如,假设一个名为 term_rec 的段包含 .data 段中某个表的终止记录。可强制链接器将 .data 和 term_rec 分配在一起:
SECTIONS
{
.text /* 正常的输出段 */
.bss /* 正常的输出段 */
GROUP 0x00001000 : /* 指定一组段 */
{
.data /* 组中的第一个段 */
term_rec /* 在 .data 之后立即分配 */
}
}
可使用绑定、对齐或指定的存储器通过与单个输出段相同的方式分配 GROUP。在前面的示例中,GROUP 绑定到地址 0x1000。这意味着 .data 分配到存储器中的 0x1000 位置,而 term_rec 紧跟其后。