INTSourceChangelist:3356804 Availability:Public Title: 언리얼 빌드 시스템 Crumbs: Description:엔진 및 게임 프로젝트를 컴파일하는 데 사용되는 언리얼 엔진의 커스텀 빌드 시스템입니다. version:4.9 parent:Programming tags:Programming tags:Unreal Build System type:overview topic-image:Engine/build_topic.png [TOC (start:1 end:3)] [REGION:fullwidth] ![언리얼 빌드 시스템](build.png) [/REGION] **Unreal Build System** (언리얼 빌드 시스템)은 언리얼 엔진 4 (UE4) 빌드 프로세스를 자동화시키는 툴 모음을 말합니다. 일반적인 수준에서 UnrealBuildTool 과 UnrealHeaderTool 은 언리얼 빌드 시스템을 지원합니다. 여기서는 UnrealBuildTool 과 UnrealHeaderTool 을 개괄적으로 설명해 드리고, UE4 의 모듈식 아키텍처에 대해서도 간략히 논의해 봅니다. 이 빌드 툴 모음을 사용하려는 경우, 프로젝트에 맞는 언리얼 빌드 시스템 셋업 및 환경설정에 도움이 될만한 가이드를 준비하기도 했습니다. 마지막으로 고급 유저를 위한 정보도 조금 준비했는데, Include-What-You-Use (IWYU) 종속성 모델 및 BuildGraph 스크립트 시스템 관련입니다. [REGION:note] Mac OS X 에서 UnrealBuildTool 또는 UnrealAutomationTool 을 디버깅하려는 경우, [MonoDevelop 4.2.2](http://monodevelop.com/Download) 과 [Mono 3.2.7](http://www.go-mono.com/mono-downloads/download.html) 를 설치해 주세요. [/REGION] ## UnrealBuildTool **UnrealBuildTool** (UBT)는 다양한 빌드 구성으로 UE4 소스 코드를 빌드하는 프로세스를 관리해 주는 커스텀 툴입니다. `BuildConfiguration.cs` 파일에서 다양한 사용자 환경설정 가능 빌드 옵션을 살펴볼 수 있습니다. ## UnrealHeaderTool UnrealHeaderTool (UHT) 는 UObject 시스템을 지원하는 커스텀 파싱 및 코드 생성 툴입니다. 코드 컴파일은 두 단계로 이루어집니다: 1. UHT 를 실행합니다. 언리얼 관련 클래스 메타데이터에 대한 C++ 헤더를 파싱하고, 다양한 UObject 관련 기능 구현을 위한 커스텀 코드를 생성하는 툴입니다. 1. 보통 C++ 컴파일러를 실행하여 그 결과를 컴파일합니다. 컴파일시, 둘 중 어느 툴에서도 오류가 날 수 있으므로, 유심히 살펴 보시기 바랍니다. ## 모듈식 아키텍처 UE4 는 다수의 모듈로 나뉘어 있습니다. 각 모듈에는 .build.cs 파일이 있으며, 이를 통해 그 빌드 방식을 제어하고, 모듈 종속성, 부가 라이브러리, 인클루드 경로 등의 정의를 위한 옵션도 포함되어 있습니다. 기본적으로, 이 모듈은 DLL 에 컴파일되어 하나의 실행파일로 로드됩니다. BuildConfiguration.cs 파일에서 monolithic 실행파일 빌드를 선택할 수 있습니다. ## 언리얼 빌드 시스템 사용 언리얼 빌드 시스템을 사용하기에 앞서, 개발 환경에 대해 (Visual Studio 의 경우) `.sln` 이나 `.vcproj` 파일처럼 프로젝트 파일 개별적으로 빌드 프로세스가 실행된다는 것을 이해하는 것이 중요합니다. 이 파일을 갖고 있으면 편집 목적 상 유용하긴 하지만, 프로젝트 디렉토리 구조 내용에 따라 동적으로 생성하는 툴이 제공되어 있습니다. 이 툴은 `[Root UE4]` 디렉토리의 `GenerateProject.bat` 파일로 실행시킬 수 있습니다. [REGION:tip] 때때로 `GenerateProject.bat` 파일을 실행하면 디스크에서 추가( 또는 제거)되는 파일들로 코드 에디터 최신 상태를 유지할 수 있습니다. [/REGION] ### 셋업 %Programming/UnrealBuildSystem/ProjectFileGenerator:topic% %Programming/Development/BuildingUnrealEngine:topic% ### 환경설정 %Programming/UnrealBuildSystem/Configuration:topic% %Programming/UnrealBuildSystem/TargetFiles:topic% ## 고급 토픽 %Programming/UnrealBuildSystem/IWYUReferenceGuide:topic%%Programming/Development/BuildGraph:topic%