我有以下程序的问题.
// fkt.cpp
#include "fkt.h"
int add2(int a, int b)
{
return a+b;
}
Run Code Online (Sandbox Code Playgroud)
标题:
// fkt.h
int add2(int a, int b);
Run Code Online (Sandbox Code Playgroud)
现在我编译它:
g++ -c fkt.cpp
Run Code Online (Sandbox Code Playgroud)
现在我跑了nm,得到:
00000000 T _Z6add2ii
U __gxx_personality_v0
Run Code Online (Sandbox Code Playgroud)
当我想在任何地方使用该函数时:
(.eh_frame+0x12): undefined reference to `__gxx_personality_v0'
Run Code Online (Sandbox Code Playgroud)
我怎么解决这个问题?(我正在使用Ubuntu Linux.)
pho*_*xis 113
如果g++仍然出错请尝试使用:
g++ file.c -lstdc++
Run Code Online (Sandbox Code Playgroud)
看看这篇文章:什么是__gxx_personality_v0?
确保-lstdc++在命令的末尾.如果将它放在开头(即在file.c之前),您仍然可以得到同样的错误.
ont*_*ia_ 63
听起来你正试图用你的结果对象文件链接,gcc而不是g++:
请注意,使用C++目标文件的程序必须始终与g ++链接,以便提供适当的C++库.尝试将C++目标文件与C编译器gcc链接将导致C++标准库函数出现"未定义的引用"错误:
$ 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'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
149337 次 |
| 最近记录: |