4

簡単なはずですが、C ++ Hello Worldコードをコンパイルすると、未定義のシンボルエラーが多数返されます。

// my first program in C++
#include <iostream>
using namespace std;

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

コンパイル方法は次のとおりです。ターミナルを開き、ディレクトリにcd、gcc hello.cpp

次に、エラーが発生します。何かご意見は?私は何かを壊したかもしれないように感じます...または私は本当に明白な何かを逃しているだけです。どんな助けでも大歓迎です!

エラーは次のとおりです。

Undefined symbols for architecture x86_64:
"std::cout", referenced from:
      _main in ccfUAf5i.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 ccfUAf5i.o
  "std::ios_base::Init::Init()", referenced from:
      __static_initialization_and_destruction_0(int, int)in ccfUAf5i.o
  "std::ios_base::Init::~Init()", referenced from:
      ___tcf_0 in ccfUAf5i.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status
4

2 に答える 2

7

g++C++コードをコンパイルしてリンクするにはを使用する必要があります。

g++ hello.cpp -o hello

または、Stack Overflowに完全に準拠するには:

g++ -W -Wall -Werror -pedantic -o hello hello.cpp
于 2012-11-04T23:21:32.443 に答える
1

gccの代わりにg++を使用してください。しかしとにかくあなたのgccインストールは壊れているようです。また、32ビットマシン/ OSで64ビットexecをコンパイルしようとしていますか?

于 2012-11-04T23:21:30.877 に答える