链接器脚本
1、 段。一个可执行程序通常是由:代码段,数据段,bss段(存放没有初始化的全局变量)构成的。同样,在用于链接这个程序的链接器脚本中,就会反应出这几个段的信息。
2、 创建链接器脚本---段信息
SECTIONS{
.text :
{
*(.text)
}
.data :
{
*(.data)
}
.bss :
{
*(.bss)
}
}
3、设置起始链接地址
SECTIONS{
. = 0X0; //.表示起始链接地址
.text :
{
*(.text)
}
.data :
{
*(.data)
}
.bss :
{
*(.bss)
}
}
4、对齐设置
4字节对齐,首地址能被4整除,提高效率
SECTIONS{
. =0X0; //.表示起始链接地址
. =ALIGN(4); //调整代码段4字节对齐
.text :
{
*(.text)
}
. = ALIGN(4); //调整数据段4字节对齐
.data :
{
*(.data)
}
. = ALIGN(4); //调整bss段4字节对齐
.bss :
{
*(.bss)
}
}
5、使用变量
SECTIONS{
. =0X0; //.表示起始链接地址
. = ALIGN(4); //调整代码段4字节对齐
.text :
{
*(.text)
}
. = ALIGN(4); //调整数据段4字节对齐
.data :
{
*(.data)
}
. = ALIGN(4); //调整bss段4字节对齐
bss_start = . ; // . 表示当前地址
.bss :
{
*(.bss)
}
bss_end = . ;
}
6、设置代码段首文件
SECTIONS{
. =0X0; //.表示起始链接地址
. = ALIGN(4); //调整代码段4字节对齐
.text :
{
start.o(.text)
*(.text)
}
. = ALIGN(4); //调整数据段4字节对齐
.data :
{
*(.data)
}
. = ALIGN(4); //调整bss段4字节对齐
bss_start = . ; // . 表示当前地址
.bss :
{
*(.bss)
}
bss_end = . ;
}