鏈結基礎 2 鏈結指令碼命令

2021-10-11 17:42:35 字數 1163 閱讀 1927

將符號symbol的值設定成入口位址。

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

1, ld命令列的-e選項

2, 連線指令碼的entry(symbol)命令

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

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

5, 使用值0

包含其他名為filename的鏈結指令碼

相當於c程式內的的#include指令, 用以包含另乙個鏈結指令碼.

指令碼搜尋路徑由-l選項指定. include指令可以巢狀使用, 最大深度為10. 即: 檔案1內include檔案2, 檔案2內include檔案3… , 檔案10內include檔案11. 那麼檔案11內不能再出現 include指令了.

將括號內的檔案做為鏈結過程的輸入檔案

ld首先在當前目錄下尋找該檔案, 如果沒找到, 則在由-l指定的搜尋路徑下搜尋.

file可以為 -lfile形式,就象命令列的-l選項一樣. 如果該命令出現在暗含的指令碼內, 則該命令內的file在鏈結過程中的順序由該暗含的指令碼在命令行內的順序決定.

指定需要重複搜尋符號定義的多個輸入檔案

file必須是庫檔案, 且file檔案作為一組被ld重複掃瞄,直到不在有新的未定義的引用出現。

定義輸出檔案的名字

同ld的-o選項, 不過-o選項的優先順序更高. 所以它可以用來定義預設的輸出檔名. 如a.out

定義搜尋路徑,同ld的-l選項, 不過由-l指定的路徑要比它定義的優先被搜尋。

指定filename為第乙個輸入檔案, 在鏈結過程中, 每個輸入檔案是有順序的. 此命令設定檔案filename為第乙個輸入檔案。

設定輸出檔案使用的bfd格式

同ld選項-o format bfdname, 不過ld選項優先順序更高.

定義三種輸出檔案的格式(大小端)

若有命令列選項-eb, 則使用第2個bfd格式; 若有命令列選項-el,則使用第3個bfd格式.否則預設選第乙個bfd格式.

設定輸入檔案的bfd格式

同ld選項-b bfdname. 若使用了target命令, 但未使用output_format命令, 則最後乙個target命令設定的bfd格式將被作為輸出檔案的bfd格式.

the gnu linker

HTML基礎 超連結基礎2

使用target屬性 網頁將在新的瀏覽器視窗或者新標籤頁中開啟 baidu 4.區段識別符號 也成為命名區段或區段id 它本質上是定義了id屬性值的乙個html元素 使用它可以鏈結到網頁中的乙個特定部分 id值對網頁中的元素進行唯一性標識 1 建立目標 首先建立鏈結目標 為目標內容元素分配乙個id ...

uboot鏈結指令碼

gnu編譯器生成的目標檔案預設為elf格式,elf檔案由若干段 section 組成,如不特殊指明,由c源程式生成的目標 中包含如下段 text 正文段 包含程式的指令 data 資料段 包含固定的資料,如常量 字串 bss 未初始化資料段 包含未初始化的變數 陣列等。c 源程式生成的目標 中還包括...

鏈結指令碼(1)

1 什麼是ld?它有什麼作用?ld是gnu binutils工具集中的乙個,是眾多linkers 鏈結器 的一種。完成的功能自然也就是鏈結器的基本功能 把各種目標檔案和庫檔案鏈結起來,並重定向它們的資料,完成符號解析。linking其實主要就是完成四個方面的工作 storage allocation...