Ошибка ссылки "неопределенная ссылка на' 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 65

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'

источник: введение в GCC-для компиляторов GNU gcc и g++