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.)
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++
Source: Stackoverflow.com