⚡이 문서는 이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해 강의를 바탕으로 작성되었습니다.
코드에서 generated.h 아래에 헤더파일을 포함시켰다.
#pragma once
#include "CoreMinimal.h"
#include "UObject/NoExportTypes.h"
#include "Student.generated.h"
#include "Person.h"
/**
*
*/
UCLASS()
class OBJECTREFLECTION_API UStudent : public UObject
{
GENERATED_BODY()
};
위 상태에서 빌드를 수행하면 컴파일 오류가 발생한다.

generated.h 파일은 언제나 헤더파일 목록에서 가장 마지막에 위치해야 한다고 나와있다.
generated.h 파일을 가장 아래에 위치시키는 것이 기본 원칙이다.
#include "CoreMinimal.h"
#include "UObject/NoExportTypes.h"
#include "Person.h"
#include "Student.generated.h"
generated.h 헤더 파일을 마지막에 위치시키면 정상적으로 빌드가 된다.

Unreal Object의 헤더파일 include도 순서가 존재한다.
Unreal Object의 헤더파일은 가장 위에 위치해야 한다.
#include "Student.h"
#include "Teacher.h"
#include "MyGameInstance.h"
UMyGameInstance::UMyGameInstance()
{
SchoolName = TEXT("기본학교");
}
위 코드를 빌드하면 오류가 발생한다.

오류 로그에 언리얼 오브젝트의 헤더는 첫번째로 위치해야 한다고 나와있다.
언리얼 오브젝트 헤더를 최상단에 위치시키면 정상적으로 빌드 된다.
#include "MyGameInstance.h"
#include "Student.h"
#include "Teacher.h"
UMyGameInstance::UMyGameInstance()
{
SchoolName = TEXT("기본학교");
}

'Unreal Engine 학습' 카테고리의 다른 글
| [UE5] 프로젝트 코드 재사용 팁 (0) | 2023.09.23 |
|---|---|
| [UE5] Unreal Object 리플렉션 시스템 - 2 (0) | 2023.09.22 |
| [UE5] Unreal Object 리플렉션 시스템 - 1 (0) | 2023.09.17 |
| [UE5] Unreal Object 기초 (0) | 2023.09.17 |
| [UE5] 문자열 - FName, FText (0) | 2023.09.17 |