我正在尝试用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";
}
答案 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++