Link error "undefined reference to `__gxx_personality_v0'" and g++
C++G++C++ Problem Overview
> 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.)
C++ Solutions
Solution 1 - C++
If g++
still gives error Try using:
g++ file.c -lstdc++
Look at this post: https://stackoverflow.com/questions/329059/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.
Solution 2 - C++
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++