2012-02-15 5 views
1

iostreamを含むmain.cppというファイルがあります。C++リンカー、iostreamファイルをリンクする方法は?

私はmain.cppをコンパイルし、それがエラーなしで働いていたので、私の質問は:私はmain.cppをコンパイルし、私はmain.cppiostreamをリンクしていないので、どのようにこれは可能だろうか?コンパイラはiostreamを自動的にリンクしましたか?

答えて

6

iostreamの関数は、通常は明示的にリンクする必要のないC++標準ライブラリの一部です。

C++コンパイラではないコンパイラを使用する場合は、-lstdc++のようなものを追加する必要があります(少なくとも、g++ではなくgccを使用してください)。

+0

g ++は、リンク時にC++ standartライブラリを追加せずに、常にC++標準ライブラリとtを含むファイル(iostreamなど)をリンクしますか? – AlexDan

+0

はい:Cをコンパイルするときにlibcをリンクする必要はありません。コンパイラが言語ランタイムを自動的にリンクさせないのは普通ではありません。 – Useless

0

のiostreamライブラリは、単語の 最大の意味で、“コンパイラ”の一部であり、あなたがC++ コンパイラドライバ、(g++cl、など)を介してリンカーを起動した場合、それは自動的になります含まれる; IDEは、自動的に自動的にインクルードされるようにもしています。 リンカを直接呼び出すと(ldlinkなど)、 は一般的に明示的に指定する必要があります。同じことは、 コンパイラドライバがC++を理解できない場合(gccの場合)に当てはまります。

関連する問題