Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 链接错误“;未定义对“个性”的引用&引用;和g++;_C++_G++ - Fatal编程技术网

C++ 链接错误“;未定义对“个性”的引用&引用;和g++;

C++ 链接错误“;未定义对“个性”的引用&引用;和g++;,c++,g++,C++,G++,可能重复: 我对以下程序有问题 // 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并获得: 00000000 T _Z6add2ii U __gxx_personality_v0 当我想在任何地方使用该功能时: (.eh_fra

可能重复:

我对以下程序有问题

// 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
并获得:

00000000 T _Z6add2ii
         U __gxx_personality_v0
当我想在任何地方使用该功能时:

(.eh_frame+0x12): undefined reference to `__gxx_personality_v0'

我怎样才能解决这个问题?(我正在使用Linux。)

听起来好像您正试图用
gcc
而不是
g++
链接生成的对象文件:

<>注意使用C++对象的程序 文件必须始终与g++链接, 为了提供适当的C++ 图书馆。尝试链接C++ 对象文件和C编译器gcc 将导致“未定义引用” C++标准库的错误 职能:


来源:

如果
g++
仍然出现错误,请尝试使用:

g++ file.c -lstdc++
请看这篇文章:


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

我们可以看到您用来链接的命令行吗?(你应该使用
g++
来做链接,如果你还没有这样做的话。)你试过
g++ftk.cpp-o ftk
?我用ghc点链接(使用FFI)当我忘记在Makefile中将
gcc
更改为
g++
时出现了这个错误……哈哈;)在这种情况下,您切换到gcc是什么意思?我不知道-lstdc++是什么,但它帮助我编译了jni项目的.so库。ThanksIt链接了cpp标准库。他确定他调用的是g++而不是gcc吗?--他不应该手动添加-lstdc++。在使用时发生在我身上,因为它默认使用gcc,而不是g++。解决方案是指定编译器
distcc g++[…]
adding-fno threadsafe statics,在使用Arduino草图时为我解决了这个问题。
g++ file.c -lstdc++