【Linux】一步一步学Linux——ld命令(256)
生活随笔
收集整理的這篇文章主要介紹了
【Linux】一步一步学Linux——ld命令(256)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
00. 目錄
文章目錄
- 00. 目錄
- 01. 命令概述
- 02. 命令格式
- 03. 常用選項(xiàng)
- 04. 參考示例
- 05. 附錄
01. 命令概述
ld命令是GNU的連接器,將目標(biāo)文件連接為可執(zhí)行程序。
02. 命令格式
用法:ld [選項(xiàng)] 文件...03. 常用選項(xiàng)
-b: 指定目標(biāo)代碼輸入文件的格式 -Bstatic: 只使用靜態(tài)庫(kù) -Bdynamic: 只使用動(dòng)態(tài)庫(kù) -Bsymbolic: 把引用捆綁到共享庫(kù)中的全局符號(hào) -c: 從指定的命令文件讀取命令 --cref: 創(chuàng)建跨引用表 -d: 設(shè)置空格給通用符號(hào),即使指定了可重定位輸出 -defsym: 在輸出文件中創(chuàng)建指定的全局符號(hào) -demangle: 在錯(cuò)誤消息中還原符號(hào)名稱(chēng) -e: 使用指定的符號(hào)作為程序的初始執(zhí)行點(diǎn) -E: 對(duì)于ELF格式文件,把所有符號(hào)添加到動(dòng)態(tài)符號(hào)表 -f: 對(duì)于ELF格式共享對(duì)象,設(shè)置 DT_AUXILIARY 名稱(chēng) -F: 對(duì)于ELF格式共享對(duì)象,設(shè)置 DT_FILTER 名稱(chēng) -format: 指定目標(biāo)代碼輸入文件的格式 (和 -b 相同) -g: 被忽略。用于提供和其他工具的兼容性 -h: 對(duì)于ELF格式共享對(duì)象,設(shè)置 DT_SONAME 名稱(chēng) -i: 執(zhí)行增量連接 -l: 把指定的存檔文件添加到要連接的文件清單 -L: 把指定的路徑添加添加到搜索庫(kù)的目錄清單 -M: 顯示連接映射,用于診斷目的 -Map: 創(chuàng)建指定的文件來(lái)包含連接映射 -m: 模擬指定的連接器 -N: 指定讀取/寫(xiě)入文本和數(shù)據(jù)段 -n: 設(shè)置文本段為只讀 -noinhibit-exec: 生成輸出文件,即使出現(xiàn)非致命連接錯(cuò)誤 -no-keep-memory: 為內(nèi)存使用優(yōu)化連接 -no-warn-mismatch: 允許連接不匹配的目標(biāo)文件 -O: 生成優(yōu)化了的輸出文件 -o: 指定輸出文件的名稱(chēng) -oformat: 指定輸出文件的二進(jìn)制格式 -R: 從指定的文件讀取符號(hào)名稱(chēng)和地址 -r: 生成可重定位的輸出(稱(chēng)為部分連接) -rpath: 把指定的目錄添加到運(yùn)行時(shí)庫(kù)搜索路徑 -rpath-link: 指定搜索運(yùn)行時(shí)共享庫(kù)的目錄 -S: 忽略來(lái)自輸出文件的調(diào)試器符號(hào)信息 -s: 忽略來(lái)自輸出文件的所有符號(hào)信息 -shared: 創(chuàng)建共享庫(kù) -sort-common: 在輸出文件中不按照長(zhǎng)度對(duì)符號(hào)進(jìn)行排序 -split-by-reloc: 按照指定的長(zhǎng)度在輸出文件中創(chuàng)建額外的段 -split-by-file: 為每個(gè)目標(biāo)文件在輸出文件中創(chuàng)建額外的段 --section-start: 在輸出文件中指定的地址定位指定的段 -T: 指定命令文件 (和 -c 相同) -Ttext: 使用指定的地址作為文本段的起始點(diǎn) -Tdata: 使用指定的地址作為數(shù)據(jù)段的起始點(diǎn) -Tbss: 使用指定的地址作為bss段的起始點(diǎn) -t: 在處理輸入文件時(shí)顯示它們的名稱(chēng) -u: 強(qiáng)制指定符號(hào)在輸出文件中作為未定義符號(hào) -warn-common: 當(dāng)一個(gè)通用符號(hào)和另一個(gè)通用符號(hào)結(jié)合時(shí)發(fā)出警告 -warn-constructors: 如果沒(méi)有使用任何全局構(gòu)造器,則發(fā)出警告 -warn-once: 對(duì)于每個(gè)未定義的符號(hào)只發(fā)出一次警告 -warn-section-align: 如果為了對(duì)齊而改動(dòng)了輸出段地址,則發(fā)出警告 --whole-archive: 對(duì)于指定的存檔文件,在存檔中包含所有文件 -X: 刪除所有本地臨時(shí)符號(hào) -x: 刪除所有本地符號(hào)04. 參考示例
4.1 將test.o轉(zhuǎn)成可執(zhí)行程序
l[deng@localhost 1gcc]$ ld -o test test.o ld: 警告: 無(wú)法找到項(xiàng)目符號(hào) _start; 缺省為 00000000004000b0 [deng@localhost 1gcc]$05. 附錄
參考:【Linux】一步一步學(xué)Linux系列教程匯總
總結(jié)
以上是生活随笔為你收集整理的【Linux】一步一步学Linux——ld命令(256)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【Linux】一步一步学Linux——l
- 下一篇: 【Linux】一步一步学Linux——g