2011-04-07 13 views
2

非常に単純なC++プログラムをMacに書きたいのですが、エラーが発生します。私はC++(およびgcc)に関する多くの経験を持っていませんし、Web上の簡単なガイドもこのトピックについて議論しません。MacでC++コードをコンパイル

私のハロー簡単な世界のプログラムを見てください(!)

今まで(おかげでたくさん)の回答を受けて
erik2:~[03:38 pm]$ cat hw.cpp 
#include <iostream> 

int main() 
{ 
    cout<<"Hello World!"; 
    return 0; 
} 
erik2:~[03:38 pm]$ gcc hw.cpp 
hw.cpp: In function ‘int main()’: 
hw.cpp:5: error: ‘cout’ was not declared in this scope 

、私は名前空間のdeclaratationを戻すが、それはなりません。しかし、成功、中:

erik2:~[03:51 pm]$ cat hw.cpp 
using namespace std; 
#include <iostream> 

int main() 
{ 
    cout<<"Hello World!"; 
    return 0; 
} 
erik2:~[03:51 pm]$ gcc hw.cpp 
Undefined symbols: 
    "___gxx_personality_v0", referenced from: 
     ___gxx_personality_v0$non_lazy_ptr in ccphDFtO.o 
    "std::ios_base::Init::~Init()", referenced from: 
     ___tcf_0 in ccphDFtO.o 
    "std::basic_ostream<char, std::char_traits<char> >& std::operator<<  <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)",  referenced from: 
     _main in ccphDFtO.o 
    "std::ios_base::Init::Init()", referenced from: 
     __static_initialization_and_destruction_0(int, int)in ccphDFtO.o 
    "std::cout", referenced from: 
     __ZSt4cout$non_lazy_ptr in ccphDFtO.o 
ld: symbol(s) not found 
collect2: ld returned 1 exit status 
+0

[FAQ](http://apple.stackexchange.com/faq)に基づいて、この質問は話題になりません。 – kiamlaluno

+1

'using namespace std;'のほかに、 'gcc'の代わりに' g ++ 'コマンドを使ってC++プログラムをコンパイルする必要があります。 – Jesper

+0

@kiamlaluno:ありがとう、申し訳ありません。 – erikbwork

答えて

6

あなたはどちらか

using namespace std; 

を追加したり、私たちあなたを修飾する必要があります

std::cout << "Hello, world!"; 

のように、その名前空間からのシンボルの電子ので、シンボルが見えるように(そして、あなたはまた、改行を追加したい....)。

+0

はそれ以前にそれを持っていましたが、それは本当にうまくいき、理解できないエラーを示したので削除しました。代わりに彼らについて何かする必要があるようだ。ありがとう – erikbwork

+2

はい、まずは正しいコンパイラを使用してください。* gccではなくg ++のようにしてください。 –

+0

@erikb、Dirkの言うとおり、2番目のエラーセットの原因は、 'gcc'はC++ライブラリがどこにあるのか分からないが、' g ++ 'と同様に' ld:symbol(s) )が見つかりません。 – rcollyer

0
#include <iostream> 

using namespace std; // <<< you forgot this ! 

int main() 
{ 
    cout<<"Hello World!"; 
    return 0; 
} 
0

namespace stdを使用して追加する必要があります。

#include <iostream> 

using namespace std; 

int main() 
{ 
    cout<<"Hello World!"; 
    return 0; 
} 
関連する問題