链接错误“未定义对‘__gxx_personality_v0’的引用"和 g++

2022-01-23 00:00:00 g++ c++

可能重复:
链接上的未定义符号___gxx_personality_v0

我对以下程序有疑问.

// fkt.cpp

#include "fkt.h"

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

还有标题:

// fkt.h

int add2(int a, int b);

现在我编译这个:

g++ -c fkt.cpp

现在我运行 nm 并得到:

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'

我该如何解决这个问题?(我正在使用 Ubuntu Linux.)

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

推荐答案

如果 g++ 仍然报错 Try using:

If g++ still gives error Try using:

g++ file.c -lstdc++

看这篇文章:__gxx_personality_v0 是干什么用的?

确保 -lstdc++ 位于命令的末尾.如果将它放在开头(即 file.c 之前),仍然会出现同样的错误.

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.

相关文章