UE4

UE4 Define 지시문

TigerFish 2021. 9. 9. 14:51

목적

 

UE4에서 Define 사용 방법이 C++ Define 말고 한가지가 더 있어 정리하기 위해 이 글을 썼습니다.


환경

 

UE4.26.2

 


Define 지시문 선언 방법

 

C++ Define 지시문

 

이미 프로그래머 분들이라면 아시기 때문에 더 이상 설명하지 않겠습니다. 

 

https://docs.microsoft.com/ko-kr/cpp/preprocessor/hash-define-directive-c-cpp?view=msvc-160 

 

#define 지시문(C/C++)

자세한 정보: #define 지시문 (C/c + +)

docs.microsoft.com

 

UE4 Define 지시문

 

UE4에서는 Build.cs에서 Define 지시문을 추가할 수 있는데 PublicDefinitions와 PrivateDefinitions 가 존재합니다. 제가 이해하기로는 Public이 들어가면 외부 모듈에서도 사용 가능하고 Private는 내부 모듈에서만 사용하는 걸로 알고 있습니다. 개인적으로 Build.cs 에서 Define을 제어하는 것이 컴파일 시간이 줄어들어 더 선호하고 있습니다. C++에서 Define을 정의하면 컴파일 시간이 Build.cs에서 하는 것보다 오래걸립니다. UnrealClass 에 Define은 잘 적용되는 것 같은데 가끔 Raw C++ Class에는 적용이 잘 안되는 경우가 있는 것 같아 그런 경우에는 C++ Define 방법으로 선언해주시면 될 것 같습니다. 

 

TestDebug.Build.cs

public class TestModule : ModuleRules
{
	public TestModule(ReadyOnlyTargetRules Target) : base(Target)
	{
		PublicDefinitions.Add("TEST_DEBUG=1");
        PrivateDefinitions.Add("TEST_DEBUG=1");
    }
}