>  기사  >  백엔드 개발  >  gcc로 C 코드를 컴파일할 때 \"링크에서 정의되지 않은 기호 ___gxx_personality_v0\" 오류가 발생하는 이유는 무엇입니까?

gcc로 C 코드를 컴파일할 때 \"링크에서 정의되지 않은 기호 ___gxx_personality_v0\" 오류가 발생하는 이유는 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-11-16 06:11:03697검색

Why am I getting

C 컴파일 중 정의되지 않은 기호 오류

"gcc test.cpp" 명령을 사용하여 C 프로그램을 컴파일하려고 하면 다음과 같은 오류가 발생합니다. "링크에 정의되지 않은 기호 ___gxx_personality_v0" 오류 메시지가 나타납니다. 이 오류는 성공적인 연결에 필요한 기호가 누락되었음을 나타냅니다.

핵심 문제는 C 코드에 잘못된 컴파일러를 사용하는 데서 발생합니다. gcc는 주로 C 프로그램을 컴파일하기 위한 것이지만 C에는 g와 같은 별도의 컴파일러가 필요합니다. C 코드와 함께 gcc를 사용하면 예외 처리 및 해제에 필수적인 특정 기호 ___gxx_personality_v0을 인식하고 처리하는 데 필요한 기능이 부족합니다.

이 문제를 해결하기 위해 권장되는 두 가지 접근 방식이 있습니다.

g 컴파일러 사용

기본적인 해결책은 다음과 같습니다. C 코드에 적합한 컴파일러를 사용하십시오. 다음과 같이 명령줄에서 gcc를 g로 바꾸세요.

g++ test.cpp

g는 연결에 필요한 필수 기호를 포함하여 C의 복잡성을 처리할 수 있습니다.

C와 연결 표준 라이브러리(우선적 접근 방식)

또는 계속 사용해야 할 설득력 있는 이유가 있는 경우 gcc의 경우 명령줄에 "-lstdc" 옵션을 추가할 수 있습니다. 이 옵션은 gcc에게 누락된 기호가 포함된 C 표준 라이브러리에 대해 링크하도록 지시합니다:

gcc test.cpp -lstdc++

이 방법을 사용하면 C 코드를 gcc로 컴파일하고 링크할 수 있지만 효율적이지 않을 수 있습니다. 또는 권장됩니다.

이러한 솔루션을 준수하면 "링크에 정의되지 않은 기호 ___gxx_personality_v0" 오류를 제거하고 성공적인 컴파일을 보장할 수 있습니다. C 코드 연결.

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

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