Link error "undefined reference to `__gxx_personality_v0'" and g++ [duplicate]
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.)
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.
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++