ld
是 Linux 系統中的鏈接器,用于將一個或多個目標文件(object files)鏈接成一個可執行文件
-o
或 --output
:指定輸出文件的名稱。例如:ld -o output_file source_file1.o source_file2.o
-s
或 --strip-all
:移除所有符號信息,使生成的可執行文件更小。例如:ld -s -o output_file source_file.o
-static
:靜態鏈接,將所有依賴的庫文件嵌入到生成的可執行文件中。例如:ld -static -o output_file source_file.o
-shared
:動態鏈接,生成一個動態鏈接庫文件(共享庫),而不是可執行文件。例如:ld -shared -o libshared.so source_file.o
-fPIC
:生成位置無關代碼(Position Independent Code),使得生成的共享庫可以在任何內存地址運行。通常與 -shared
一起使用。例如:gcc -c -fPIC source_file.c
ld -shared -o libshared.so *.o
-L
或 --library-path
:指定庫文件的搜索路徑。例如:ld -L/path/to/library -o output_file source_file.o
-l
或 --library
:鏈接指定的庫文件。例如:ld -lmylib -o output_file source_file.o
-Wl,
或 --dynamic-linker
:指定動態鏈接器的路徑。通常不需要設置,因為系統會自動使用合適的動態鏈接器(如 /lib/ld-linux.so.2
)。例如:ld -Wl,/path/to/dynamic-linker -o output_file source_file.o
-rpath
或 --runpath
:指定程序運行時庫文件的搜索路徑。例如:ld -rpath=/path/to/library -o output_file source_file.o
這只是 ld
命令的一部分參數,還有其他參數可用于控制鏈接過程。要查看完整的參數列表,請參閱 ld(1) 手冊頁。