开发者

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

This question already has answers here: Closed 11 years ago.

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 refe开发者_开发百科rence 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++

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜