Files
Mitchell Wilson 0b47855b71 Copying //UE4/Dev-Documentation to Samples-Main (//UE4/Samples-Main) CL - 4860397
#rb none

[CL 4860421 by Mitchell Wilson in Main branch]
2019-01-31 15:30:04 -05:00

201 lines
10 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
INTSourceChangelist:3810557
Availability:Public
Title:编译游戏项目
Crumbs: %ROOT%, Programming, Programming/Development
Description:使用Windows上的Visual Studio或Mac上的Xcode编译单个游戏项目。
Version: 4.16
Parent:Programming/Development
Order:
type:overview
[TOC (start:2 end:3)]
[EXCERPT:Main]
虚幻引擎4UE4通过UnrealBuildTool使用自定义构建方法该工具处理所有复杂的项目编译工作
并将项目与引擎关联起来。该过程以透明方式进行这样您只需通过标准的Visual Studio
构建工作流程构建项目即可。
UnrealBuildTool使用.Build.cs和.Target.cs文件来构建游戏项目。这些文件在以下情况下会自动生成
使用C++模板创建项目;或者使用[](Programming\Development\ManagingGameCode\CppClassWizard)向使用“仅蓝图”模板创建的
项目添加代码。
(#buildconfiguration)
## 构建配置
UE4和UnrealBuildTool使用不同的构建配置来确定如何编译引擎。您使用哪种配置取决于想要创建的构建目的。
[INCLUDE:#winbuildconfig]
[/EXCERPT:Main]
[COMMENT:none]
[EXCERPT:winbuildconfig]
每种构建配置都包含两个关键词。第一个表示引擎状态和游戏项目。例如,如果使用 **调试Debug** 配置进行编译,将能够
调试游戏代码。第二个关键词表示构建目标。例如,如果想要在虚幻中打开项目,需要使用 **编辑器Editor** 目标关键词
进行构建。
|构建配置——状态 | 说明 |
|------------- |------------- |
| **调试Debug** | 该配置包含用于调试的符号。该配置在调试配置中同时构建引擎和游戏代码。如果通过 **调试Debug** 配置编译项目并打算用虚幻编辑器打开项目,则必须使用“-debug”标志查看项目中反映出来的代码变化。|
| **调试游戏DebugGame** | 该配置按最优方式构建引擎,但游戏代码为可调试状态。此配置适用于调试游戏模块。|
| **开发Development** | 该配置等同于发布。虚幻编辑器默认采用 **开发Development** 配置。如采用 **开发Development** 配置编译项目,可在编辑器中看到项目代码的变化情况。|
| **交付Shipping** | 这是最佳性能配置,用于交付游戏。此配置剥离了控制台命令、统计数据和性能分析工具。|
| **测试Test** | 该配置就是启用了一些控制台命令、统计数据和性能分析工具后的 **交付Shipping** 配置。|
|构建配置——目标 | 说明 |
| ------------------ | ---------- |
| **[空empty]** | 该配置构建项目的独立可执行版本,但需要特定于平台的已烘焙内容。请参阅我们的[](Engine/Basics/Projects/Packaging)参考页面,以进一步了解烘焙内容。|
| **编辑器Editor** | 为了能够在虚幻编辑器中打开项目并看到反映出来的所有代码更改,项目必须以 **编辑器Editor** 配置构建。|
| **客户端Client** | 如果您使用UE4联网功能处理多人项目该目标将指定项目用作面向多玩家游戏的UE4客户端-服务器模型中的客户端。如果存在`<Game>Client.Target.cs`文件,则 **客户端Client** 构建配置将有效。|
| **服务器Server** | 如果您使用UE4联网功能处理多人项目该目标将指定项目用作面向多玩家游戏的UE4客户端-服务器模型中的服务器。如果存在`<Game>Server.Target.cs`文件,则 **服务器Server** 构建配置将有效。|
[/EXCERPT:winbuildconfig]
[/COMMENT]
[EXCERPT:VS]
(#buildingwithvisualstudio)
## 使用Visual Studio进行构建
(#settingthebuildconfiguration)
### 设置构建配置
构建配置可以在Visual Studio工具栏中设置。
(#project-configurationmenu)
### 项目——配置菜单
![项目——配置菜单](rocket_configuration_menu.png)
[COMMENT:none]
(#solution-configurationmenu)
### 解决方案——配置菜单
![UE4解决方案——配置菜单](configuration_menu.png)
[/COMMENT]
(#settingthesolutionplatform)
### 设置解决方案平台
解决方案平台可以在Visual Studio工具栏中设置。
[COMMENT:none]
UE4目前支持以下平台
* **Windows 64位**
![项目——平台菜单](rocket_platform_menu.png)
![UE4解决方案——平台菜单](platform_menu.png)
[/COMMENT]
UE4目前支持以下平台
* **Windows 32位**
* **Windows 64位**
在使用虚幻引擎4时您通常使用 **Win64** 平台。这是生成项目文件时默认包含的唯一一个平台;[](Programming/UnrealBuildSystem/ProjectFileGenerator)页面
包含为其他平台生成项目文件的说明。
(#buildingtheproject)
### 构建项目
[REGION:note]
在继续之前请确保您运行的是适用于已安装的Windows桌面版的Visual Studio 2015或更高版本。如果使用Mac请确保安装Xcode 8或更高版本。
[/REGION]
[COMMENT:none]
[REGION:tip]
在Visual Studio中构建时您仅编译游戏项目而不是虚幻编辑器。
[/REGION]
[REGION:tip]
在Visual Studio中构建时除了游戏项目您还会编译引擎。
[/REGION]
1. 将 **解决方案配置Solution Configuration** 设置为您想要构建的配置。在该示例中,设置为了 **开发编辑器Development Editor**。请参考[构建配置](#BuildConfiguration)部分以了解每个可用配置的说明。
![项目——将配置设置为开发](config_development_menu.png)
1. **右键单击** 游戏项目并选择 **重新构建Rebuild** 来重新编译。
![](rebuild_project_rocket.png)
[/COMMENT]
1. 将 **解决方案配置Solution Configuration** 设置为您想要构建的配置。在该示例中,设置为了 **开发编辑器Development Editor**。请参考[构建配置](#BuildConfiguration)部分以了解每个可用配置的说明。
![](rocket_config_development_menu.png)
1. **右键单击** 游戏项目并选择 **重新构建Rebuild** 来重新编译。
![](rebuild_project_outside.png)
现在,您可以通过编译好的项目[运行引擎](GettingStarted/RunningUnrealEngine)。
[INCLUDE:#MatchEXE]
(#visualstudioknownissues)
### Visual Studio已知问题
| 问题 | 解决方案 |
| ----- | -------- |
| 总是出现“项目过期Project is out of date”消息 | Visual Studio认为项目过期但项目其实是最新状态。您可以选中 **不再显示该消息Do not show this dialog again** 框并按 **否No** 来安全禁止该消息。|
| 使用_调试Debug_配置时出现 **无调试信息No Debugging Information** 窗口 | 原因是UE4editor.exe是使用_开发Development_配置编译的。尽管在使用_调试Debug_配置进行编译时出现这个警告游戏项目也仍然可以调试。您可以选中 **不再显示该消息Do not show this dialog again** 框并按 **是Yes** 来安全禁止该消息。|
[/EXCERPT:VS]
[COMMENT:none]
[EXCERPT:MatchEXE]
[REGION:note]
在运行引擎时,必须使用与重新构建项目所用的构建配置相匹配的虚幻引擎可执行文件。例如,如果项目编译使用的是 **调试游戏未烘焙DebugGame Uncooked**
构建配置,则在运行`UE4-Win64-DebugGame.exe`可执行文件时,应以游戏信息作为参数。有关二进制命名约定的更多信息,请参阅[构建虚幻引擎](Programming/Development/BuildingUnrealEngine)页面。
[/REGION:note]
[REGION:note]
在运行虚幻时,如果是以任何 **未烘焙Uncooked** 配置重新构建项目的,则必须添加`-game`标志,如果是以 **调试Debug** 配置重新构建项目的,则必须添加`-debug`标志。
[/REGION:note]
[/EXCERPT:MatchEXE]
[/COMMENT]
[EXCERPT:Xcode]
(#buildingwithxcode)
## 使用Xcode构建
[REGION:note]
在Xcode中构建时您仅编译游戏项目而不是编辑器。
[/REGION]
**要编译项目:**
如果您使用Xcode的 **产品Product>构建Build** 选项则虚幻引擎Xcode项目配置为构建“调试Debug”配置如果使用 **产品Product>构建用途Build For>分析Profiling**则构建“开发Development”配置。您可以通过编辑目标方案来编辑该行为。
现在,您可以通过编译好的项目[运行引擎](GettingStarted/RunningUnrealEngine)。
[INCLUDE:#MatchDMG]
(#xcodeknownissues)
### Xcode已知问题
| 问题 | 解决方案 |
| ----- | -------- |
| Xcode不会在断点处停止 | [INCLUDE:#XcodeDebug] |
[/EXCERPT:Xcode]
[COMMENT:none]
[EXCERPT:XcodeDebug]
Xcode的LLDB调试程序需要进行配置才能正确处理虚幻引擎项目中的断点。您需要在主目录中创建.lldbinit文件如果已经有了则需要编辑并添加以下行
settings set target.inline-breakpoint-strategy always
[/EXCERPT:XcodeDebug]
[EXCERPT:MatchDMG]
[REGION:note]
在运行二进制编辑器时,如果是以任何 **未烘焙Uncooked** 配置重新构建项目的,则必须添加`-game`标志,如果是以 **调试Debug** 配置重新构建项目的,则必须添加`-debug`标志。
[/REGION:note]
[/EXCERPT:MatchDMG]
[/COMMENT]