INTSourceChangelist:2624288 Availability:Public Title:虚幻编译系统 Crumbs: %ROOT%, Programming Description:对引擎和游戏项目进行编译的虚幻引擎自定义编译系统。 version:4.9 [VAR:Topic] [OBJECT:Topic] [PARAM:image] ![%Programming/UnrealBuildSystem:title%](Engine/build_topic.png) [/PARAM] [PARAM:icon] ![](%ROOT%/build_icon.png)(convert:false) [/PARAM] [PARAM:title] %Programming/UnrealBuildSystem:title% [/PARAM] [PARAM:description] %Programming/UnrealBuildSystem:description% [/PARAM] [PARAM:path] [RELATIVE:Programming/UnrealBuildSystem] [/PARAM] [/OBJECT] [/VAR] [REGION:fullwidth] ![Unreal Build System](build.png) [/REGION] ### UnrealBuildTool **UnrealBuildTool**(简称 UBT)是一个自定义工具,管理多个编译配置中的 **虚幻引擎 4**(UE4)源代码编译过程。研究 BuildConfiguration.cs,探索诸多用户可配置的编译选项。 [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] ### UnrealHeaderTool **UnrealHeaderTool**(简称 UHT)是支持 UObject 系统的自定义解析和代码生成工具。代码编译在两个阶段中进行: 1. UHT 被调用。它将解析 C++ 头中引擎相关类元数据,并生成自定义代码,以实现诸多 UObject 相关的功能。 1. 普通 C++ 编译器被调用,以便对结果进行编译。 编译时,两个工具皆有可能出现错误,必须仔细检查。 ### 项目文件 开发环境任意项目文件(如 Visual Studio 的 .sln 或 .vcproj 文件)的编译过程均独立进行。这些文件有助于进行编辑,因此提供了一个工具,基于项目目录树内容进行动态文件生成。使用保存在 root /UE4 目录下的 [GenerateProjectFiles.bat](Programming\UnrealBuildSystem\ProjectFileGenerator) 文件即可运行此工具。时常运行该批处理文件有助于使代码编辑器和硬盘上添加或移除的代码文件之间达成同步。 ### 模块化架构 UE4 被划分为多个模块。每个模块都拥有控制其编译方式的 .build.cs 文件,包括定义模块相依性的选项、额外的库、包含路径等。 这些模块被默认编译为 DLL 文件,可通过单一可执行文件进行加载。可选择在 BuildConfiguration.cs 文件中编译一个单块可执行文件。 ## 概要 [REGION:buttonlist] * [](Programming/UnrealBuildSystem/ProjectFileGenerator "%Programming/UnrealBuildSystem/ProjectFileGenerator:description%") * [](Programming/Development/BuildingUnrealEngine "%Programming/Development/BuildingUnrealEngine:description%") [/REGION] ## 设置和配置 [REGION:buttonlist] * [](Programming/UnrealBuildSystem/Configuration "%Programming/UnrealBuildSystem/Configuration:description%") * [](Programming/UnrealBuildSystem/TargetFiles "%Programming/UnrealBuildSystem/TargetFiles:description%") [/REGION]