본문 바로가기
Unreal/Manual

Unreal C++ 헤더 포함 Header Include

by Dev_카페인 2023. 10. 24.
반응형

[Unreal/C++] 헤더 포함 Header Include

 

언리얼 엔진에서의 프로그래밍은 C++ 기반으로 구성되어 있기 때문에

다른 헤더 파일에 정의된 C++ 클래스나 기능을 사용하기 위해서는 헤더 파일을 포함하는 전처리가 필수적이다.

일반적인 C++ 프로젝트에서는 헤더가 꼬이거나 중복 호출 되는 경우만 조심하면 되지만

언리얼에서는 헤도 포함시 위치가 중요하다.

 

StaticMeshComponent.h를 generated.h 아래에 선언할 경우

generated.h 아래에 헤더를 포함시킬 경우 아래와 같은 에러가 발생한다.

 #include found after .generated.h file - the .generated.h file should always be the last #include in a header
.generated.h 파일 뒤에 #include가 있습니다.
.generated.h 파일은 항상 헤더의 마지막 #include여야 합니다.

generated.h 위로 헤더 참조를 옮김

위와 같이 generated.h 파일 참조는 헤더의 마지막으로 옮기고

사용하고자 하는 기능의 헤더 파일은 generated.h 위로 옮긴다.

위치를 잘 잡았음에도 불구하고 발생하는 구문 에러 (Syntax Error)

위 이미지 처럼 사용하고자 하는 기능의 헤더 파일을 올바른 위치에 작성했지만 구문 에러가 발생하는 경우가 있다.

이러한 문제는 Visual Studio의 Unreal C++ 인텔리센스(IntelliSense) 속도의 문제이다.

 

Unreal 공식 문서에서는 코드를 편집할 때 구불구불한 선이 나타나는 데 몇 초 정도 걸릴 수 있으며, 잘못 탐지된 (false positive) IntelliSense 오류가 보일 수 있다고 한다.

주된 이유는 다음과 같다.

  •  include 파일이 많고, IntelliSense 가 현재 PCH 를 사용하지 않기 때문입니다.
  • IntelliSense 컴파일러(EDG)는 MSVC 컴파일러보다 엄격합니다.
  • 일부 IntelliSense 에 대한 #defines 구성이 일반 빌드와 다르게 구성되어 있습니다.
  • IntelliSense 가 컴파일하는 C++ 는 항상 32 비트로 간주됩니다.

조금 더 자세한 사항은 언리얼 공식 문서를 확인한다.

 

언리얼 엔진용 Visual Studio 구성

언리얼 엔진 4 에서 작동하도록 Visual Studio 를 구성하는 팁입니다.

docs.unrealengine.com

 

 

반응형