1. 程式人生 > >Linux之lds連結指令碼學習筆記

Linux之lds連結指令碼學習筆記

簡單例子

以下指令碼將輸出檔案的text section定位在0x10000,data section定位在0x800000:

SECTIONS
{
    . = 0×10000;
    .text : { *(.text) }
    . = 0×8000000;
    .data : { *(.data) }
    .bss : { *(.bss) }
}

簡單指令碼命令

ENTRY(SYMBOL):將符號SYMBOL的值設定成入口地址。

入口地址(entry point)是指程序執行的第一條使用者空間的指令在程序地址空間的地址

ld有多種方法設定程序入口地址,按以下順序:(編號越前,優先順序越高)

1、ld命令列的-e選項

2、連線指令碼的ENTRY(SYMBOL)命令

3、如果定義了start符號,使用start符號值

4、如果存在.text section,使用.text section的第一位元組的位置值

5、使用值0