ld
是 Linux 中的一個鏈接器(linker),它用于將一個或多個目標文件(object files)鏈接成一個可執行文件(executable file)
ld [選項] [目標文件] [庫文件]
常用選項:
-o
或 --output
:指定輸出的可執行文件名。-v
或 --verbose
:顯示詳細的鏈接過程信息。-s
或 --strip-all
:去除可執行文件中的符號信息,減小文件大小。-static
:靜態鏈接,將所有依賴的庫文件嵌入到可執行文件中。-dynamic
:動態鏈接,不嵌入庫文件,而是在運行時動態加載庫文件。-l
或 --library
:鏈接指定的庫文件,例如 -lmysql
鏈接 MySQL 庫。-I
或 --include-dir
:指定頭文件搜索目錄。-L
或 --library-dir
:指定庫文件搜索目錄。示例:
將兩個目標文件 file1.o
和 file2.o
鏈接成一個名為 my_program
的可執行文件:
ld file1.o file2.o -o my_program
靜態鏈接 file1.o
和 file2.o
,生成名為 my_program
的可執行文件:
ld -static file1.o file2.o -o my_program
鏈接 MySQL 庫,生成名為 my_program
的可執行文件:
ld file1.o file2.o -o my_program -lmysql
顯示詳細的鏈接過程信息:
ld -v file1.o file2.o -o my_program
去除可執行文件中的符號信息:
ld -s file1.o file2.o -o my_program
注意:在使用 ld
命令時,請確保目標文件和庫文件的路徑正確,以及已經正確編譯了目標文件。如果需要鏈接多個庫文件,可以使用 -l
選項逐個指定,或者使用 -Wl,-rpath,library_path
選項將庫文件的路徑嵌入到可執行文件中。