Home » C++ » Link error “undefined reference to `__gxx_personality_v0'” and g++ [duplicate]

Link error “undefined reference to `__gxx_personality_v0'” and g++ [duplicate]

Posted by: admin November 29, 2017 Leave a comment

Questions:

Possible Duplicate:
Undefined Symbol ___gxx_personality_v0 on link

I have a problem with the following program.

// fkt.cpp

#include "fkt.h"

int add2(int a, int b)
{
    return a+b;
}

And the header:

// fkt.h

int add2(int a, int b);

Now I compile this with:

g++ -c fkt.cpp

Now I run nm and get:

00000000 T _Z6add2ii
         U __gxx_personality_v0

When I want to use the function anywhere I get:

(.eh_frame+0x12): undefined reference to `__gxx_personality_v0'

How can I solve this problem? (I’m using Ubuntu Linux.)

Answers:

If g++ still gives error Try using:

g++ file.c -lstdc++

Look at this post: What is __gxx_personality_v0 for?

Make sure -lstdc++ is at the end of the command. If you place it at the beginning (i.e. before file.c), you still can get this same error.

Questions:
Answers:

It sounds like you’re trying to link with your resulting object file with gcc instead of g++:

Note that programs using C++ object
files must always be linked with g++,
in order to supply the appropriate C++
libraries. Attempting to link a C++
object file with the C compiler gcc
will cause “undefined reference”
errors for C++ standard library
functions:

$ g++ -Wall -c hello.cc
$ gcc hello.o       (should use g++)
hello.o: In function `main':
hello.o(.text+0x1b): undefined reference to `std::cout'
.....
hello.o(.eh_frame+0x11):
  undefined reference to `__gxx_personality_v0'

Source: An Introduction to GCC – for the GNU compilers gcc and g++