- 締切済み
gccを使ってのリンク時のライブラリの指定法
gccを使って、c++の勉強を始めようとしています。 hello.cpp(どこにでもある一行のプログラム)のコンパイルはできましたが、リンクができません。 私の機械では iostream は /usr/include/c++/3.3.2 にあります。( iostream.hは /usr/include/c++/3.3.2/backward にあります。) また、makefileにこの情報を書くには、どのように書けばよいのでしょうか。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- colder
- ベストアンサー率43% (30/69)
>c++の拡張子を持ったファイルはg++でコンパイルするのですか? g++でコンパイルすると、C++の標準ライブラリを勝手にリンクしてくれる。 gccでコンパイルするときは、-lstdc++でライブラリを明示的に指定しないといけない。
- a-saitoh
- ベストアンサー率30% (524/1722)
gccが正しくインストールされていないのではないですか? iostreamのような標準的なライブラリが置かれた場所は,指定しなくてもデフォルトで検索されるはずなのですが.
- mac_res
- ベストアンサー率36% (568/1571)
#include <iostream> int main(void) { using namespace std; cout << "hello, world" << endl; return 0; } をコンパイルリンクするなら、オプションは必要ありません。 g++ hello.cpp -o hello でいくはずです。 gcc hello.cpp -o hello とやっていませんか?
お礼
早速にお教えいただきありがとうございます。ご指摘のとおりで、gcc としていました。g++ に変更したらうまくできました。 g++ は gccに統合されたと読んだものですので。 c++の拡張子を持ったファイルはg++でコンパイルするのですか?
お礼
お教えいただきありがとうございます。gccは自分で個別にインストールしたものではなく、CDからシステム全体( Vine 3.2 ) をインストールしたままです。 とりあえずは、No.1の回答していただいたことで、解決しましたが、いろいろなライブラリがあるらしいので、どのように使うのか、さっぱりわかりません。