Ошибка ссылки "неопределенная ссылка на' gxx personality v0 '" и g++ [дубликат]
Возможные Дубликаты:
неопределено символ ___gxx_личность_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
и
00000000 T _Z6add2ii
U __gxx_personality_v0
когда я хочу использовать функцию в любом месте я получаю:
(.eh_frame+0x12): undefined reference to `__gxx_personality_v0'
как я могу решить эту проблему? (Я использую Ubuntu Linux.)
2 ответа:
Если
g++
по-прежнему дает ошибку попробуйте использовать:g++ file.c -lstdc++
посмотрите на этот пост: что составляет __gxx_личность_v0 для?
убедится
-lstdc++
в конце команды. Если вы поместите его в начале (т. е. до файла.c), вы все еще можете получить эту же ошибку.
похоже, что вы пытаетесь связать свой результирующий объектный файл с
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'