Why can't I compile HelloWorld in C++?

眉间皱痕 提交于 2019-12-19 08:44:36

问题


I'm trying to compile a simple Hello World program in C++ but I keep getting the following error...why?

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

Here is my program:

#include <iostream>
using namespace std;

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

回答1:


Use g++ not gcc. gcc is a C compiler, whereas g++ is a C++ compiler.

g++ -o hwcompiled helloworld.cc

Then to execute your compiled program:

./hwcompiled



回答2:


You have to use g++, not gcc. It seems that gcc understands that it's C++ (so it doesn't give syntax errors), but "forgets" to link it to the C++ standard library.




回答3:


Compile with g++ instead of gcc.




回答4:


Try using g++ to compile your C++ code, instead of gcc, which is used for compiling C programs.




回答5:


Or you could still use gcc but explicitly link with the c++ library thusly:

gcc -o HelloWorldCompiled HelloWorld.cc -lstdc++


来源:https://stackoverflow.com/questions/9087885/why-cant-i-compile-helloworld-in-c

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!