ld
(鏈接器)是Linux系統中用于將多個目標文件(object files)和庫文件(library files)鏈接成一個可執行文件的工具
-o
或 --output
:指定輸出文件的名稱。如果不指定該參數,鏈接器將使用第一個輸入文件名作為輸出文件名。
-v
或 --verbose
:顯示詳細的鏈接過程信息。
-s
或 --strip-all
:移除所有符號信息,生成一個不可執行的二進制文件。
-S
或 --strip-debug
:僅移除調試信息,保留符號信息。
-static
:以靜態鏈接的方式鏈接庫文件,生成的可執行文件將包含所有依賴的庫函數。
-shared
:以動態鏈接的方式鏈接庫文件,生成的可執行文件不包含庫函數,而是在運行時動態加載庫文件。
-fPIC
或 --shared-lib
:生成位置無關代碼(Position Independent Code),適用于動態鏈接庫文件。
-fPIE
或 --pie
:生成位置無關可執行文件(Position Independent Executable),提高程序的安全性。
-O
或 --optimize
:優化鏈接過程,可能提高程序性能。
-Wl,
或 --dynamic-linker
:指定動態鏈接器的路徑,例如 -Wl,/lib/ld-linux.so.2
。
-rpath
或 --runpath
:指定程序運行時搜索庫文件的路徑,例如 -rpath=/lib
。
-L
或 --library-path
:指定庫文件的搜索路徑,例如 -L/usr/local/lib
。
-l
或 --library
:鏈接指定的庫文件,例如 -lmysql
鏈接 MySQL 庫。
-I
或 --include-dir
:指定頭文件的搜索路徑,例如 -I/usr/include/mysql
。
-isystem
或 --system-include
:指定系統頭文件的搜索路徑,通常用于指定編譯器的標準庫頭文件路徑。
-pthread
:鏈接 POSIX 線程庫,支持多線程程序。
這些參數只是 ld
命令的一部分,還有其他選項可用于控制鏈接過程。在使用 ld
命令時,請參考其手冊頁(man page)以獲取完整的參數列表和詳細信息。