ld
是 Linux 中的一個鏈接器,用于將一個或多個目標文件(object files)鏈接成一個可執行文件
ld -o output_file input_file.o
這里,output_file
是你要生成的可執行文件的名稱,input_file.o
是你要鏈接的目標文件。
ld -o output_file input_file1.o input_file2.o input_file3.o
在這個例子中,output_file
是你要生成的可執行文件的名稱,而 input_file1.o
、input_file2.o
和 input_file3.o
是你要鏈接的目標文件。你可以根據需要添加更多的目標文件。
除了目標文件之外,你還可以鏈接庫文件(library files)。庫文件通常以 .a
或 .so
結尾。鏈接庫文件時,需要使用 -l
選項,并在庫名之前加上 lib
前綴和文件擴展名(例如,-lmylib
)。
ld -o output_file input_file.o -lmylib
在這個例子中,output_file
是你要生成的可執行文件的名稱,input_file.o
是你要鏈接的目標文件,-lmylib
表示你要鏈接名為 libmylib.so
的庫文件。
你可以同時鏈接多個庫文件,只需在命令中依次列出它們即可。
ld -o output_file input_file.o -lmylib1 -lmylib2 -lmylib3
在這個例子中,output_file
是你要生成的可執行文件的名稱,input_file.o
是你要鏈接的目標文件,而 -lmylib1
、-lmylib2
和 -lmylib3
分別表示你要鏈接的庫文件。
注意:在鏈接過程中,鏈接器會按照指定的順序處理目標文件和庫文件。如果一個目標文件或庫文件依賴于其他目標文件或庫文件,你需要確保它們在正確的順序下鏈接。否則,你可能會遇到未解析的外部符號錯誤。在這種情況下,你可以使用 -r
選項重新排序目標文件和庫文件的鏈接順序,或者使用靜態庫(將依賴項靜態鏈接到最終的可執行文件中)。