2011-04-07 2 views
2

Я хочу написать очень простые программы на C++, но я получаю ошибки. У меня нет большого опыта работы с C++ (и gcc), и простые руководства в Интернете также не обсуждают эту тему.Компиляция кода на C++ на Mac

Пожалуйста, посмотрите на мой простой привет мир программы:

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;', вы должны использовать команду 'g ++' вместо 'gcc' для компиляции программ на C++. – Jesper

+0

@kiamlaluno: Спасибо и извините за то, что они не читали их перед публикацией там! – erikbwork

ответ

6

Вам нужно либо добавить

using namespace std; 

или квалифицировать Ваш нас е символов из этого пространства имен, как и в

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

так сделать символ видимым (и вы хотите добавить новую строку ....).

+0

имел это раньше, но удалил его, потому что он показал действительно прошитые и непонятные ошибки. Кажется, мне нужно что-то сделать с ними. Спасибо – erikbwork

+2

Да, для начинающих * использование правильного компилятора *, такого как 'g ++', а не 'gcc', должно помочь. –

+0

@erikb, справа от Dirk, причиной второго набора ошибок является то, что 'gcc' не знает, где находятся библиотеки C++, но' g ++ 'делает, поэтому вы получаете ошибки компоновщика, как указано символом' ld: symbol (s) не найдено'. – rcollyer

0
#include <iostream> 

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

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

Необходимо добавить, используя пространство имен std;

#include <iostream> 

using namespace std; 

int main() 
{ 
    cout<<"Hello World!"; 
    return 0; 
} 
Смежные вопросы