2013-04-28 66 views
0

我有2個文件鏈接:「test.o」和「testlib.a」兩個文件都在同一個文件夾如何使用命令ld

現在我想用連接器加入他們的行列。問題是必須將它們與「ld」命令聯繫起來!

那麼有人能告訴我語法是怎麼樣的嗎?

我嘗試這一點,但它不工作:

ld -I -o testprog test.o testlib.a 

回答

3

就讓G ++利用你所有的細節問題 - 它會調用ld了所有正確的參數:

g++ -o testprog test.o testlib.a 

如果您想查看正在傳遞給ld的命令,以便您可以直接調用它,則只需添加-v標誌:

g++ -v -o testprog test.o testlib.a 
2

如果您的程序不需要大多數程序使用的C++運行時庫部件,您將得到的結果將會工作。如果您想要使用任何C++運行時功能,您將需要提供C++啓動代碼和標準C++庫(例如,您的代碼在main開始,並且有stdincin,atexit的表和許多其他類似的東西被初始化)。

沒有理由直接使用ld。像Paul R說的那樣,使用g++來進行鏈接。它知道如何去做所有你需要的事情。只有當你不想這樣做時,如果你正在構建一個操作系統(或內核模塊)或其他一些不使用正常標準運行時庫位的組件。