Linux 交叉编译
交叉编译工具链近期获得了更新,使虚幻引擎 4(UE4)开发者能够从 Windows 开发环境中针对多个平台进行开发。此指南将说明交叉编译工具链可针对哪些平台,提供工具链下载链接,并最终说明如何进行设置,对 Linux UE4 项目进行交叉编译。如您正在使用虚幻引擎 4.15 版本开发项目,还能够学习到如何在目标平台之间进行切换。
如您使用的是虚幻引擎 4.13 版本(或更低版本),则需要参考 Linux 交叉编译(旧版) 文档。
为什么选择交叉编译
交叉编译 使游戏开发者能在以 Windows 为中心的工作流中进行 Linux 开发。当前,交叉编译只支持 Windows。 Mac 用户只能使用 本地编译 。我们支持、测试并提供 Linux-x86_64 平台的库和工具链。
设置工具链
如果需要从 Windows(主机)电脑设置工具链,将之前提及的任意平台作为目标,则需要下载工具链并设置系统的环境变量,以便针对基于 Linux 和 ARM 的环境打包应用程序。如这是您首次针对 Linux 平台打包 UE4 项目,您必须先在 Linux 的 Visual Studio 中生成引擎。完成以下步骤后,您将完成主机环境的设置,以便针对当前支持的平台进行开发。
执行这些步骤之前,请确保网络连接稳定可靠。下载工具链的时间从数分钟到数小时不等,具体取决于您的网络连接速度。
下载工具链
点击 链接 下载基于 Clang 3.9.0 的工具链。
新建一个文件夹,将其命名为
Linux_CrossCompileToolChain
。如果您使用其他的命名规则,则需要用您选择的文件名替换此处用于展示说明的文件名。
解压 工具链,必须将文件解压到之前步骤中创建的目标文件夹。
打开
[ROOT]/Linux_CrossCompileToolChain/v8_clang-3.9.0-centos7
文件夹查看解压文件。支持平台
请参照下表,了解您使用的 UE4 版本能够针对的平台:
架构
子架构
供应商
系统
应用程序二进制接口(abi)
UE 4.14 支持
UE.4.15 支持
N/A
Unknown
Linux
gnueabi
✗
✓
N/A
Unknown
Linux
gnueabihf
✗
✓
N/A
Unknown
Linux
gnu
✗
✗
N/A
Unknown
Linux
gnu
✓
✓
请注意:我们尚未为 i686 平台添加引擎库。
设置环境变量
设置
LINUX_MULTIARCH_ROOT
环境变量之前,双击 Setup 批处理文件(Setup.bat
)输出适合您电脑的环境变量设置。此时,
v8_clang-3.9.0-centos7
文件夹中应出现一个新的 OutputEnvVars 文本文件。OutputEnvVars.txt
文件包含设置系统环境变量的实用信息。同时按下 Windows 键 和 Pause Break 键 打开 System Information 菜单。 然后点击 Advanced System Settings 链接打开 Advanced 子菜单(位于 System Properties 菜单中)。
点击 Environment Variables... 按钮。
点击 System variables 列表下的 New... 按钮添加一个新的 系统变量。
New System Variable 对话菜单打开后,将
LINUX_MULTIARCH_ROOT
环境变量设置复制到 New System Variable 对话的文本框中。返回到 Evironment Variables 菜单后,点击 Ok 按钮保存
LINUX_MULTIARCH_ROOT
环境变量。请注意:如您已设置
LINUX_ROOT
环境变量,则无需将其删除,因为引擎在打包过程中将把LINUX_MULTIARCH_ROOT
优先在LINUX_ROOT
之前。点击 OK 按钮关闭 System Properties 菜单。
为系统添加新环境变量后,需要关闭并重启当前运行的所有 Visual Studio 和 Command Prompt 实例。
设置 Linux 生成配置
如从未针对 Linux 打包项目,则需要按以下步骤操作。
打开 Command Prompt,运行
Setup.bat
检查、更新并安装从 Visual Studio 生成 UE4 的必备依赖性。运行
GenerateProjectFiles.bat
设置 UE4 的项目文件。GenerateProjectFiles.bat
必须在 UE4 所在的根文件夹中运行([UE4 ROOT]
)。如果使用 Unreal Game Sync 运行批处理文件,Linux 不会在 Visual Studio 中显示为有效 Build Configuration。前往
[UE4 根目录]
,双击 UE4.sln 在 Visual Studio 中打开 UE4 解决方案文件。停止运行引擎,返回 Visual Studio 选择 Visual Studio 中的 Linux 解决方案平台。按下此组合键可进行 Linux 生成:Ctrl+Shift+B。
针对特定平台
因为 4.14 版本只能针对 x86_64 平台,以下部分则为使用 4.15 版本的开发者。
如果希望项目针对特定的平台,则需要编辑项目的 默认引擎配置文件
。如需执行此操作,前往文件的路径([Project Directory]\Config
)并打开 DefaultEngine.ini
添加以下行:
[/Script/LinuxTargetPlatform.LinuxTargetSettings]
TargetArchitecture=X86_64UnknownLinuxGnu
可将 TargetArchitecture
设为以下任意一个值:
X86_64UnknownLinuxGnu
ArmUnknownLinuxGnueabihf
AArch64UnknownLinuxGnueabi
最终结果
恭喜!之后为 Linux 打包项目时您便能够看到使用中的交叉编译工具链。
现在您便可以从 Windows(主机)电脑上 编译 、生成 和 打包 大量 Linux 平台的项目。