Reputation: 6833
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";
}
Upvotes: 6
Views: 5292
Reputation: 9309
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
Upvotes: 21
Reputation: 16333
Or you could still use gcc
but explicitly link with the c++ library thusly:
gcc -o HelloWorldCompiled HelloWorld.cc -lstdc++
Upvotes: 0
Reputation: 126787
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.
Upvotes: 3
Reputation: 96937
Try using g++
to compile your C++ code, instead of gcc
, which is used for compiling C programs.
Upvotes: 0