ld
是 Linux 系統中的鏈接器(linker),它用于將一個或多個目標文件(object files)鏈接成一個可執行文件
ld [選項] [目標文件] [鏈接器腳本] [庫文件]
常用選項:
-o
或 --output
:指定輸出的可執行文件名。-v
或 --verbose
:顯示詳細的鏈接過程信息。-s
或 --strip-all
:去除可執行文件中的符號信息,減小文件大小。-static
:靜態鏈接,將所有依賴的庫文件嵌入到可執行文件中。-dynamic
:動態鏈接,不嵌入庫文件,而是在運行時加載所需的庫文件。-l
或 --library
:鏈接指定的庫文件,例如 -lmath
鏈接數學庫。-I
或 --include-dir
:指定頭文件搜索目錄。-L
或 --library-dir
:指定庫文件搜索目錄。-Wl,
:傳遞選項給鏈接器,例如 -Wl,-rpath,libpath
設置運行時庫搜索路徑。示例:
編譯一個名為 main.c
的 C 語言源文件:
gcc -o main main.c
將 main.o
鏈接成一個名為 my_program
的可執行文件,并靜態鏈接數學庫:
ld -o my_program main.o -static -lmath
將 main.o
鏈接成一個名為 my_program
的可執行文件,并動態鏈接數學庫,同時設置運行時庫搜索路徑:
ld -o my_program main.o -dynamic -lmath -Wl,-rpath,/path/to/lib
鏈接一個名為 example.o
的目標文件和一個名為 libexample.a
的靜態庫文件:
ld -o example example.o -lexample
注意:在使用 ld
命令時,請確保已經安裝了相應的編譯器和庫。如果遇到鏈接錯誤,請檢查目標文件和庫文件的依賴關系是否正確。