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