プロが教えるわが家の防犯対策術!

gccを使って、c++の勉強を始めようとしています。
hello.cpp(どこにでもある一行のプログラム)のコンパイルはできましたが、リンクができません。
私の機械では iostream は /usr/include/c++/3.3.2 にあります。( iostream.hは /usr/include/c++/3.3.2/backward にあります。)
また、makefileにこの情報を書くには、どのように書けばよいのでしょうか。

A 回答 (3件)

>c++の拡張子を持ったファイルはg++でコンパイルするのですか?


g++でコンパイルすると、C++の標準ライブラリを勝手にリンクしてくれる。
gccでコンパイルするときは、-lstdc++でライブラリを明示的に指定しないといけない。
    • good
    • 2

gccが正しくインストールされていないのではないですか?


iostreamのような標準的なライブラリが置かれた場所は,指定しなくてもデフォルトで検索されるはずなのですが.
    • good
    • 0
この回答へのお礼

お教えいただきありがとうございます。gccは自分で個別にインストールしたものではなく、CDからシステム全体( Vine 3.2 ) をインストールしたままです。
とりあえずは、No.1の回答していただいたことで、解決しましたが、いろいろなライブラリがあるらしいので、どのように使うのか、さっぱりわかりません。

お礼日時:2006/05/15 23:54

#include <iostream>



int
main(void)
{
using namespace std;

cout << "hello, world" << endl;
return 0;
}
をコンパイルリンクするなら、オプションは必要ありません。
g++ hello.cpp -o hello
でいくはずです。
gcc hello.cpp -o hello
とやっていませんか?
    • good
    • 0
この回答へのお礼

早速にお教えいただきありがとうございます。ご指摘のとおりで、gcc としていました。g++ に変更したらうまくできました。
g++ は gccに統合されたと読んだものですので。 c++の拡張子を持ったファイルはg++でコンパイルするのですか?

お礼日時:2006/05/15 23:46

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!