컴파일 중 "정의되지 않은 기호 ___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 중국어 웹사이트의 기타 관련 기사를 참조하세요!