> 백엔드 개발 > C++ > 링크 중에 g가 'typeinfo에 대한 정의되지 않은 참조' 오류를 발생시키는 이유는 무엇입니까?

링크 중에 g가 'typeinfo에 대한 정의되지 않은 참조' 오류를 발생시키는 이유는 무엇입니까?

Barbara Streisand
풀어 주다: 2024-12-02 16:17:13
원래의
335명이 탐색했습니다.

Why Does g   Throw an

"g의 typeinfo에 대한 정의되지 않은 참조" 오류 이해

g의 "typeinfo에 대한 정의되지 않은 참조" 오류는 여러 링크를 연결할 때 자주 발생합니다. 컴파일 단위. 링커가 특정 클래스의 타입 정보에 대한 참조를 확인할 수 없음을 나타냅니다.

이 오류는 헤더 파일에 가상 함수가 선언되었지만 해당 소스 파일에 정의되지 않은 경우 발생할 수 있습니다. 가상 함수가 정의 없이 선언되면 본질적으로 "외부"로 선언됩니다. 즉, 해당 구현이 다른 곳에서 제공되는 것으로 가정됩니다. 그러나 함수가 정의되지 않은 경우 링커는 연결 중에 해당 구현을 찾지 못합니다.

이러한 유형의 오류는 하나의 컴파일 단위에 정의 및 포인터 없이 외부 변수가 선언되는 상황과도 유사합니다. 다른 컴파일 단위에서 사용됩니다. 링크 타임에 링커가 정의되지 않은 변수의 주소를 해석하지 못하고 오류가 발생합니다.

이 오류를 해결하려면 가상 함수가 선언된 소스 파일에 정의해야 합니다. 이는 유형 정보에 대한 참조를 성공적으로 해결하는 데 필요한 구현 세부 정보를 링커에 제공합니다.

이 오류의 근본적인 원인을 이해함으로써 개발자는 문제를 효과적으로 해결하고 코드가 정의되지 않은 상태로 적절하게 정의되고 컴파일되도록 할 수 있습니다. 참고하세요.

위 내용은 링크 중에 g가 'typeinfo에 대한 정의되지 않은 참조' 오류를 발생시키는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿