>  기사  >  백엔드 개발  >  컴파일하는 동안 \"정의되지 않은 기호 ___gxx_personality_v0\" 오류가 발생하는 이유는 무엇입니까?

컴파일하는 동안 \"정의되지 않은 기호 ___gxx_personality_v0\" 오류가 발생하는 이유는 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-11-15 17:48:02952검색

Why am I getting an

컴파일 중 "정의되지 않은 기호 ___gxx_personality_v0" 오류 디버깅

문제:

C 빌드 중 명령줄을 사용하여 코드를 작성하면 정의되지 않은 기호가 나타납니다. 오류:

$ gcc test.cpp
Undefined symbols:
  "___gxx_personality_v0", referenced from:

코드가 단순함에도 불구하고 설명이 없으면 컴파일에 실패합니다.

설명:

오류가 발생하는 이유는 다음과 같습니다. 코드는 C용 컴파일러인 g 대신 C 언어용 컴파일러인 gcc를 사용하여 컴파일됩니다. ___gxx_personality_v0 기호는 C 표준 라이브러리(libstdc)에만 해당하는 기호이며 C 표준 라이브러리(libc)에는 없습니다.

해결책:

이 문제를 해결하려면 두 가지 솔루션이 있습니다. issue:

  • g 사용:

    코드는 C로 작성되었으므로 g를 사용하여 컴파일해야 합니다. 여기에는 C 컴파일러와 그리고 C 표준 라이브러리. 대신 다음 명령을 사용하세요.

    $ g++ test.cpp
  • C 표준 라이브러리 추가:

    gcc를 사용해야 하는 경우 C를 추가할 수 있습니다. 명령줄에 -lstdc 플래그를 추가하여 표준 라이브러리를 만들 수 있습니다. 이 플래그는 링커에게 필요한 기호가 포함된 libstdc 라이브러리를 포함하도록 지시합니다. 대신 다음 명령을 사용하세요.

    $ gcc test.cpp -lstdc++

참고:

g를 사용하는 것은 C와 C 코드를 모두 원활하게 처리하므로 선호되는 방법입니다. 사용 중인 언어에 맞는 컴파일러를 선택하면 이러한 유형의 오류를 방지하고 성공적인 컴파일을 보장할 수 있습니다.

위 내용은 컴파일하는 동안 \"정의되지 않은 기호 ___gxx_personality_v0\" 오류가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.