- ベストアンサー
c++における文字出力
c++初学者です(cは少しだけ知っています). 私が持っているc++の入門書には,「coutを使って文字を出力できる」旨書かれています.そこで,その本に載っているcoutを使ったサンプル(*1)を書いて実行してみたのですが,下のようなエラーが出ます. > /var/tmp/ccT163831.o: In function `main': > /var/tmp/ccT163831.o(.text+0x9): undefined reference to `cout' > /var/tmp/ccT163831.o(.text+0xe): undefined reference to `ostream::operator<<(char const *)' 本で使われているコンパイラはBorlandのもので,私が使っているものはgccです. coutを使って出力する方法はBorland特有の(あるいはその他いくつかのコンパイラだけで使われている)方法で,より一般的にc++を勉強したい場合は他の参考書を使うべきなのでしょうか.それとも,私の使っているgcc(ver 2.7.2.3)が古すぎる,あるいは何らかの設定が間違っていて使えない,ということなのでしょうか. どなたかご教授ください. (*1) #include <iostream.h> void main(void) { cout << "this is a test."; }
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
もしかしてコマンドを gcc ファイル名 と入力しているのかい? gccはCのコンパイラーだから C++のライブラリであるcoutは読み込まないよ。 C++をGCCでコンパイルしたいならg++を使う。 g++ ファイル名 としてみて。
その他の回答 (4)
- gatyan
- ベストアンサー率41% (160/385)
gcc3.3.3だと、 c++ a.cpp (c++.exeがありました) gcc -X c++ a.cpp (Xは大文字) -X c++ で、C++モードを指定するといいみたいです
- επιστημη(@episteme)
- ベストアンサー率46% (546/1184)
> /var/tmp/ccT163831.o(.text+0x9): undefined reference to `cout' > /var/tmp/ccT163831.o(.text+0xe): undefined reference to `ostream::operator<<(char const *)' 単にライブラリをリンクしてないだけじゃない? libstdc++.a とか。 # コンパイラのマニュアルを参照してください。 # てゆっか、v2.7はちと旧い
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
<iostream.h> を <iostream> にしてみるとか std::cout にしてもいいと思います。 gcc だったらvoid main だと文句いわれないですか (ver 2.7 は今使ってないので自信なし)
- Trick--x--
- ベストアンサー率26% (19/72)
C++の書式では #include <iostream> using namespace std; となります。 これで試してみてください。 (古い書式:質問者さんの書き方:でも通ると思ったが…
補足
.h を消すと iostream: No such file or directory と出ます. .h を戻して using ... の行だけ足してコンパイルすると質問中に書いたエラーとあわせて次の行が出ます. 2: warning: namespaces are mostly broken in this version of g++
補足
.h のまま cout を std::cout にしてコンパイルすると次のエラーが出ます(下のもので全部. void main のままなんですが…). > In function `int main(...)': > 5: `std' undeclared (first use this function) > 5: (Each undeclared identifier is reported only once > 5: for each function it appears in.) > 5: parse error before `::'