iostream
を含むmain.cpp
というファイルがあります。C++リンカー、iostreamファイルをリンクする方法は?
私はmain.cpp
をコンパイルし、それがエラーなしで働いていたので、私の質問は:私はmain.cpp
をコンパイルし、私はmain.cpp
でiostream
をリンクしていないので、どのようにこれは可能だろうか?コンパイラはiostream
を自動的にリンクしましたか?
iostream
を含むmain.cpp
というファイルがあります。C++リンカー、iostreamファイルをリンクする方法は?
私はmain.cpp
をコンパイルし、それがエラーなしで働いていたので、私の質問は:私はmain.cpp
をコンパイルし、私はmain.cpp
でiostream
をリンクしていないので、どのようにこれは可能だろうか?コンパイラはiostream
を自動的にリンクしましたか?
iostream
の関数は、通常は明示的にリンクする必要のないC++標準ライブラリの一部です。
C++コンパイラではないコンパイラを使用する場合は、-lstdc++
のようなものを追加する必要があります(少なくとも、g++
ではなくgcc
を使用してください)。
のiostreamライブラリは、単語の 最大の意味で、“コンパイラ”の一部であり、あなたがC++ コンパイラドライバ、(g++
、cl
、など)を介してリンカーを起動した場合、それは自動的になります含まれる; IDEは、自動的に自動的にインクルードされるようにもしています。 リンカを直接呼び出すと(ld
、link
など)、 は一般的に明示的に指定する必要があります。同じことは、 コンパイラドライバがC++を理解できない場合(gcc
の場合)に当てはまります。
g ++は、リンク時にC++ standartライブラリを追加せずに、常にC++標準ライブラリとtを含むファイル(iostreamなど)をリンクしますか? – AlexDan
はい:Cをコンパイルするときにlibcをリンクする必要はありません。コンパイラが言語ランタイムを自動的にリンクさせないのは普通ではありません。 – Useless