>  기사  >  백엔드 개발  >  C++ 오류: 해결되지 않은 외부 문제가 발생했습니다. 어떻게 수정하나요?

C++ 오류: 해결되지 않은 외부 문제가 발생했습니다. 어떻게 수정하나요?

WBOY
WBOY원래의
2023-08-21 21:12:383550검색

C++ 프로그래밍 언어를 사용하는 과정에서 일부 오류 메시지가 나타날 수 있습니다. 일반적인 오류 중 하나는 "링크 오류"라고도 알려진 "해결되지 않은 외부"입니다. 이 문제는 일반적으로 일부 변수, 함수 또는 개체의 정의가 소스 코드에 제대로 연결되지 않아 발생합니다. 이 문제를 해결하려면 다음과 같은 조치를 취해야 합니다.

1. 변수, 함수, 객체가 올바르게 정의되었는지 확인하세요

우선 코드 파일에 있는 모든 변수, 함수, 객체가 올바르게 정의되었는지 확인해야 합니다. 이름과 유형이 소스 코드에서 참조되는 위치와 일치하는지 확인하세요. 또한 변수, 함수 또는 개체의 범위가 올바른지 확인하십시오.

예를 들어 변수가 .cpp 파일이 아닌 .h 파일에 정의된 경우 해당 변수를 사용하는 .cpp 파일에 .h 파일이 포함되어야 합니다.

2. 누락된 소스 파일이 있는지 확인하세요

"미해결 외부"가 발생하는 일반적인 이유도 일부 소스 코드 파일이 누락되었기 때문입니다. 여러 소스 코드 파일을 사용하여 프로젝트를 빌드한 경우 모든 파일을 프로젝트에 추가해야 합니다. 실수로 삭제, 이동 또는 이름이 변경된 파일이 있는지 확인하세요. 프로젝트 빌드 프로세스 중에 소스 코드 파일이 올바르게 컴파일되었는지 확인하십시오.

3. 누락된 라이브러리 파일 추가

때로는 코드를 지원하기 위해 라이브러리 파일을 사용해야 할 수도 있습니다. 예를 들어 Windows.h 헤더 파일을 사용하는 경우 코드에서 Windows API 사용을 지원하려면 Kernel32.lib 라이브러리 파일을 추가해야 합니다.

이 문제를 해결하려면 라이브러리 파일이 사용 가능하고 프로젝트에 올바르게 추가되었는지 확인해야 합니다. Visual Studio IDE에서 프로젝트 속성을 열고 링커 탭을 선택하여 라이브러리 파일을 추가할 수 있습니다.

4. 프로젝트 재생성

위 작업을 모두 확인했는데도 문제가 지속된다면 전체 프로젝트를 재생성해 보세요. 가끔 특정 파일이나 리소스의 문제로 인해 잘못된 링크가 발생하는 경우가 있습니다. Rebuild를 사용하면 프로젝트가 완전히 정리되고 다시 빌드됩니다.

고급 팁:

1. #pragma 한 번 또는 헤더 파일 가드를 사용하세요.

#pragma 한 번 또는 헤더 파일 가드를 사용하여 헤더 파일이 한 번만 포함되도록 하세요. 헤더 파일이 포함된 코드 파일을 여러 번 컴파일하면 "해결되지 않은 외부" 오류가 발생할 수 있습니다.

일부 이전 컴파일러 버전에서는 #pragma Once를 사용할 수 없으므로 대신 헤더 가드를 사용하세요.

2. 포함 가드 사용

자신만의 클래스나 구조를 정의하는 경우 헤더 파일이 한 번만 포함되도록 포함 가드를 사용해야 합니다. 이렇게 하면 동일한 클래스나 구조체를 여러 번 정의하여 "해결되지 않은 외부" 오류가 발생하는 문제를 방지할 수 있습니다.

3. 네임스페이스 사용

올바른 네임스페이스에 정의를 배치하면 이름 충돌을 피할 수 있습니다. 두 개의 서로 다른 소스 코드 파일이 동일한 이름의 변수나 함수를 정의하는 경우 컴파일러는 이들을 구별할 수 없습니다. 이로 인해 "해결되지 않은 외부" 오류가 발생할 수 있습니다.

코드에 올바른 네임스페이스를 포함하면 이 문제를 피할 수 있습니다. 소스 코드 파일 상단에 "using 네임스페이스" 명령이나 한정자를 추가하면 사용하는 함수, 변수 또는 개체가 올바른 네임스페이스에서 나오는지 확인할 수 있습니다.

다음은 C++의 "해결되지 않은 외부" 문제를 해결하는 데 도움이 되는 몇 가지 팁과 방법입니다. 기억해야 할 핵심 사항은 먼저 코드가 올바르게 정의되었는지 확인한 다음 누락된 소스 코드 파일이나 라이브러리 파일이 있는지 확인해야 한다는 것입니다. 그래도 문제가 해결되지 않으면 고급 기술을 사용하여 이름 충돌과 중복 정의를 피할 수 있습니다.

위 내용은 C++ 오류: 해결되지 않은 외부 문제가 발생했습니다. 어떻게 수정하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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