2012-01-31 54 views
3

我想在C++中编译一个简单的Hello World程序,但我不断收到以下错误...为什么?为什么我不能在C++中编译HelloWorld?

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"; 
} 

回答

18

使用g++gcc。 gcc是一个C编译器,而g ++是一个C++编译器。与g++代替gcc

./hwcompiled 
+0

谢谢...有什么区别? – 2012-01-31 22:23:34

+2

gcc是一个C编译器,g ++是一个C++编译器 – AJG85 2012-01-31 22:24:55

+0

g ++可能只是gcc的一个别名...你可以真正使用gcc来编译C++我想通过使用'-x C++'命令行选项... – mtahmed 2012-01-31 22:25:26

1

编译:

g++ -o hwcompiled helloworld.cc 

然后执行您编译的程序。

0

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

2

您必须使用g++而不是gcc。似乎gcc明白它是C++(所以它不会给出语法错误),但是“忘记”将它链接到C++标准库。

0

或者你还可以使用gcc但与C++库正是如此明确链接:

gcc -o HelloWorldCompiled HelloWorld.cc -lstdc++