Linker 在链接器脚本中对齐

Linker 在链接器脚本中对齐,linker,linker-scripts,Linker,Linker Scripts,ALIGN关键字在链接器脚本中起什么作用?我读了很多关于链接器脚本的教程,但我不明白ALIGN到底做了什么。有人能简单地解释一下吗。谢谢 一个典型用法是 . = ALIGN(8); 这意味着:插入填充字节,直到当前位置在8字节边界上对齐。即: while ((current_location & 7) != 0) *current_location++ = padding_value; =对齐(8) 对应于以下内容(使用运算符的工作链接脚本示例): ALIGN()指令告诉链接器,

ALIGN关键字在链接器脚本中起什么作用?我读了很多关于链接器脚本的教程,但我不明白ALIGN到底做了什么。有人能简单地解释一下吗。谢谢

一个典型用法是

. = ALIGN(8);
这意味着:插入填充字节,直到当前位置在8字节边界上对齐。即:

while ((current_location & 7) != 0)
  *current_location++ = padding_value;
=对齐(8)

对应于以下内容(使用运算符的工作链接脚本示例):

ALIGN()指令告诉链接器,节(bss,文本)应该如此对齐

对于一个典型的想法,您可以看一看(4.6.3“输出部分描述”)

e、 g


谢谢你用这么简单的方式解释。就我的一生而言,我找不到一个地方能如此简单地解释它
data = .;

. = ((data + 0x8 - 1) & ~(0x8 - 1)) - data;
    //.data is aligned by word size on the 32-bit architecture and direct it to the data section
For a 32-bit machine, it typically needs to be word aligned 

        .data : ALIGN(4) 
        {
           *(.data*)
        } > data_sdram