2012-02-15 36 views
1

我有一個名爲main.cpp的文件,其中包括iostreamC++鏈接器,如何鏈接iostream文件?

我編譯main.cpp和它的工作沒有錯誤,所以我的問題是:我編譯main.cpp,我沒有與main.cpp鏈接iostream,所以怎麼會這樣可能嗎?或者編譯器自動鏈接iostream

回答

6

iostream中的函數是C++標準庫的一部分,您通常不需要顯式鏈接。

如果您使用的編譯器不是嚴格意義上的C++編譯器,您有時需要添加類似-lstdc++(至少,如果我使用gcc而不是g++)。

+0

so g ++總是鏈接C++標準庫與containt(例如iostream)的文件,而不需要在鏈接時添加C++標準庫? – AlexDan 2012-02-15 14:11:43

+0

是的:編譯C時不需要鏈接libc。編譯器不自動鏈接語言運行時會非常痛苦。 – Useless 2012-02-15 14:17:21

0

iostream庫是「編譯」的一部分,在這個詞的 最大的意義,如果你調用通過C++ 編譯器驅動程序的連接,(g++cl等),它會自動包括在內; IDE通常也會自動包含它。如果 您直接調用鏈接器(ld,link等),那麼您通常必須明確指定它。如果 編譯器驅動程序不理解C++(gcc的情況),也是如此。