In Linux, while trying to compile a C++ program I encountered a very unusual linker error which was even happening in case of a simple “Hello World” program.
For this following piece of code :
#include <iostream>
using namespace std;
using namespace std;
int main()
{
cout << “Hello World”;
return 0;
}
{
cout << “Hello World”;
return 0;
}
When I tried compiling it using following command :
# gcc -o test test.cpp
I got this insane error :
/tmp/ccIan2q6.o(.text+0xd): In function `std::__verify_grouping(char const*, unsigned int, std::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)’:: undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::size() const’/tmp/ccIan2q6.o(.text+0×60): In function `std::__verify_grouping(char const*, unsigned int, std::basic_string<char, std::char_traits<char>,std::allocator<char>> const&)’:: undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator[](unsigned int) const’/tmp/ccIan2q6.o(.text+0×9f): In function `std::__verify_grouping(char const*, unsigned int, std::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)’:: undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator[](unsigned int) const’/tmp/ccIan2q6.o(.text+0xce): In function `std:: __verify_grouping (char const*, unsigned int, std::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)’:: undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator[](unsigned int) const’/tmp/ccIan2q6.o (.text+0×127): In function `main’:: undefined reference to `std::cout’/tmp/ccIan2q6.o(.text+0×12c): In function `main’:: 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/ccIan2q6.o(.text+0×155): In function `__static_initialization_and_destruction_0(int, int)’:: undefined reference to `std::ios_base::Init::Init()’/tmp/ccIan2q6.o(.text+0×170): In function `__static_initialization_and_destruction_0 (int, int)’:: undefined reference to `std::ios_base::Init::~Init()’/tmp/ccIan2q6.o(.eh_frame+0×11): undefined reference to`__gxx_personality_v0′ collect2: ld returned 1 exit status
After lot of effort finally I found following solutions for this error :
Solution 1
Compile using following command :
# gcc <source> -lstdc++
Solution 2
Compile using g++ :
# g++ -o test test.cpp
Comments
Post a Comment