관리 메뉴

기억을 위한 기록들

IWYU 레퍼런스 본문

UnrealEngine

IWYU 레퍼런스

에드윈H 2018. 12. 30. 18:05

https://www.youtube.com/watch?v=mSRov77hNR4&list=PLZlv_N0_O1gYup-gvJtMsgJqnEB_dGiM4

 

언리얼엔진에서 제공되는 기초 C++ 강의 Battery Collector(이하 배터리 콜렉터)를 따라하다보면 나타는 문제점들이 발생한다.

 

 

그 문제로 배터리 콜렉터를 최근 버전으로 vs로 따라하면 제대로 실행이 되지 않는다....

 

그 문제로 강의의 엔진 버전은 4.9버전이고 현재 기준으로 4.21까지(작성일 기준) 나온상태로써의 차이점이 존재하는데,

 

그 중 하나가 *IWYU(Include-What-You-Use) 이다.

 

쉽게 설명하자면 기존 구 버전에서는 C++ 프로젝트 생성시   Engine.h 및 UnrealEd.h 등 모든 게임 엔진에 필요한 소스등을 만든 프로젝트에 종속 시켰으나, 불필요 한것까지 다 포함 시켜버리니... *병목현상이 일어나 버리는 것이다.

 

 

그래서 4.15버전 부터는 본인 프로젝트에 필요한것만 포함시켜라 해서 나온것이다. 이렇게 변경을 통해 빌드시간을 줄이고, 소스 파일 자체의 독립적인 변경도 가능하게 되었다!

 

한마디로 새로운 방식으로서 불필요한 헤더파일의 참조로 인한 컴파일 시간과 인텔리센스의 부하를 최소화 하기 위함이다.

 

(4,15버전 이후) 최소 기능한 선언되어있는 CoreMinimal.h,

(4.15버전 이전) 다양한 기능이 선언되어있는 EngineMinimal.h 이다.

 

 

 

참고 링크

-언리얼엔진 공식 문서

* IWYU ? https://docs.unrealengine.com/ko/Programming/BuildTools/UnrealBuildTool/IWYU/index.html

 

IWYU

A brief overview of the updated code base for UE4, now using an Include-What-You-Use (IWYU) dependency model.

docs.unrealengine.com

-출처 네이버 지식백과

https://terms.naver.com/entry.nhn?docId=2835911&cid=40942&categoryId=32848

* 병목현상 ? 어떤 시스템 프로그램 가운데 집중적인 사용으로 전체 시스템에 절대적 영향을 미치는 사용 빈도가 많은 부분 또는 중요 프로그램으로 사용 빈도가 많아 그 부분의 성능 저하로 전체 시스템이 마비되는 현상.