为什么我不能用C ++编译Hello World?

时间:2012-01-31 22:21:06

标签: c++ compilation linker g++

我正在尝试用C ++编译一个简单的Hello World程序但是我一直收到以下错误......为什么?

gcc -o HelloWorldCompiled HelloWorld.cc
/tmp/ccvLW1ei.o: In function `main':
HelloWorld.cc:(.text+0xa): undefined reference to `std::cout'
HelloWorld.cc:(.text+0xf): undefined reference to `std::basic_ostream<char,     std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)'
/tmp/ccvLW1ei.o: In function `__static_initialization_and_destruction_0(int, int)':
HelloWorld.cc:(.text+0x3d): undefined reference to `std::ios_base::Init::Init()'
HelloWorld.cc:(.text+0x42): undefined reference to `std::ios_base::Init::~Init()'
/tmp/ccvLW1ei.o:(.eh_frame+0x12): undefined reference to `__gxx_personality_v0'
collect2: ld returned 1 exit status

这是我的计划:

#include <iostream>
using namespace std;

int main()
{
  cout << "Hello World\n";
}

5 个答案:

答案 0 :(得分:20)

使用g++而不是gcc。 gcc是一个C编译器,而g ++是一个C ++编译器。

g++ -o hwcompiled helloworld.cc

然后执行编译的程序:

./hwcompiled

答案 1 :(得分:3)

您必须使用g++,而不是gcc。似乎gcc理解它是C ++(因此它没有给出语法错误),但“忘记”将它链接到C ++标准库。

答案 2 :(得分:1)

使用g++而不是gcc进行编译。

答案 3 :(得分:0)

尝试使用g++编译C ++代码,而不是用于编译C程序的gcc

答案 4 :(得分:0)

或者你仍然可以使用gcc但是明确地链接到c ++库:

gcc -o HelloWorldCompiled HelloWorld.cc -lstdc++