鏈結器指令碼構成:段、起始鏈結位址、對齊、變數、**段首檔案
乙個可執行程式通常由**段,資料段,bss段構成。
其中資料段存放的是初始化後的前期變數;bss段存放的是沒有初始化的前期變數
乙個鏈結器指令碼led.lds例子:
output_arch(arm) /*指定輸出檔案的平台體系是arm*/
entry(_start) /*指定可執行映像檔案的起始段的段名是_start*/
sections
. = align(4);
.data :
. = align(4);
bss_start = .; /*變數,表示將當前位址賦值給bss_start*/
.bss :
bss_end = .; /*變數,表示將當前位址賦值給bss_end*/
}
設定**段首檔案:規定了程式執行時首先執行的** 鏈結器指令碼
參考 程式設計師的自我修養 鏈結 裝載與庫 什麼是鏈結指令碼?鏈結指令碼就是程式鏈結時的參考檔案,其主要目的是描述如何把輸入檔案中的段 section 對映到輸出檔案中,並控制輸出檔案的儲存布局。鏈結指令碼的基本命令式sections命令,乙個sections命令內部包含乙個或多個段,段 secti...
1 1 4 鏈結器指令碼
1.程式由 段 sections 和堆疊 stack 組成,而段 sections 包括四個部分,分別為 段 text 資料段 data 以及bss段 bss 1.1 段 text 存放要執行的程式指令 1.2 資料段 data 存放已初始化的全域性變數 1.3 bss段 bss 存放未初始化的全域...
Linker script 鏈結器指令碼(1)
每個鏈結都由鏈結指令碼控制著,指令碼由鏈結器命令語言組成。指令碼的主要目的是描述如何把輸入檔案中的節 sections 對映到輸出檔案中,並控制輸出檔案的儲存布局。大多數的鏈結指令碼就是做這些事情的,但在有必要時,指令碼也可以指導鏈結器執行一些其他的操作。鏈結器總是使用鏈結器指令碼,如果你沒有提供乙...