Компиляция кода C ++ на Mac - PullRequest
2 голосов
/ 07 апреля 2011

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

Пожалуйста, ознакомьтесь с моей простой программой hello world:

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

Отвечая на ответы до сих пор (большое спасибо), я отложил (!) Декларацию пространства имен, но это не привело к успеху, хотя:

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

Ответы [ 3 ]

6 голосов
/ 07 апреля 2011

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

using namespace std;

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

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

, поэтому сделайте символ видимым (и вы также хотите добавитьперевод строки ....).

0 голосов
/ 07 апреля 2011

Вы должны добавить используя пространство имен std;

#include <iostream>

using namespace std;

int main ()
{
  cout<<"Hello World!";
  return 0;
}
0 голосов
/ 07 апреля 2011
#include <iostream>

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

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