programing tip

링크 오류 " '__gxx_personality_v0'에 대한 정의되지 않은 참조"및 g ++

itbloger 2020. 10. 26. 07:44
반응형

링크 오류 " '__gxx_personality_v0'에 대한 정의되지 않은 참조"및 g ++


중복 가능성 :
링크의 정의되지 않은 기호 ___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하고 얻습니다.

00000000 T _Z6add2ii
         U __gxx_personality_v0

어디서나 함수를 사용하고 싶을 때 :

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

이 문제를 어떻게 해결할 수 있습니까? ( 우분투 리눅스를 사용하고 있습니다.)


만약 g++여전히 사용하여 오류 시도를 제공합니다 :

g++ file.c -lstdc++

이 게시물을보십시오 : __gxx_personality_v0은 무엇입니까?

-lstdc++명령의 끝에 있는지 확인하십시오 . 처음에 (즉, file.c 이전에) 배치해도 동일한 오류가 발생할 수 있습니다.


gcc대신 결과 개체 파일과 연결하려는 것 g++같습니다.

C ++ 개체 파일을 사용하는 프로그램은 적절한 C ++ 라이브러리를 제공하기 위해 항상 g ++와 연결되어야합니다. 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 ++ 용

참고 URL : https://stackoverflow.com/questions/6045809/link-error-undefined-reference-to-gxx-personality-v0-and-g

반응형