Language:
Page Info
Tags:
Skill Level:
Engine Version:
Share

Linux的交叉编译

先决条件页面

在阅读本页面前应对以下页面有所了解,如尚不了解,则请先浏览以下页面。

LinuxXC_Banner.png

对交叉编译工具链的最新改进使得虚幻引擎4(UE4)开发人员能够从其Windows开发环境 以各种平台为目标。本指南将告诉您可以使用交叉编译工具链以哪些平台为目标,提供下载工具链的链接, 并最终向您展示如何设置工具链以交叉编译用于Linux的UE4项目。如果您在虚幻引擎4.15版本中开发项目, 您还将学习如何在目标平台之间切换。

如果您正在使用虚幻引擎4.13(或更旧版本)开发项目,请参阅Linux的交叉编译(旧版) 文档。

为何需要交叉编译

交叉编译(Cross-compilation) 使得在以Windows为中心的工作流程中工作的游戏开发者能够以Linux为目标。目前,只有Windows支持交叉编译。 Mac用户目前必须求助于本机编译 。我们为Linux-x86_64平台支持、测试及提供库和工具链。

获取工具链

请使用下表以下载相应的工具链:

工具链

UE4版本

-v11 基于clang-5.0.0

4.19

-v10 基于clang-5.0.0

4.18

-v9 基于clang-4.0.0

4.16和4.17

-v8 基于clang-3.9.0

4.14和4.15

-v7 基于clang-3.7.0

4.11到4.13

-v6 基于clang-3.6.0

4.9和4.10

-v4 基于clang-3.5.0

4.8及更早版本

安装和卸载Windows批处理文件(Setup and UnSetup Windows Batch Files)(*.bat)不包括在 -v9 中,因为如果您要为UE4设置AutoSDK,您只需要这些文件。 “Setup.bat”和“Unsetup.bat”包括在之前的工具链版本中,因为它们是AutoSDK系统的一部分(目前未记录该系统)。

我们还提供允许您为Linux ARM (原始Raspberry Pi和更高版本)进行编译的库和工具链。 不过,这需要您在虚幻构建工具 (UBT)中进行(微小的)代码更改。

设置工具链

如果您希望从Windows(主机)计算机设置一个工具链来以上述任何平台为目标,那么您必须下载这个工具链 并设置系统的环境变量,以便为基于Linux和ARM的环境打包您的应用程序。如果这是您第一次为Linux平台打包UE4项目, 那么您还必须在Visual Studio中为Linux构建引擎。完成以下步骤后, 您的主机环境将面向当前支持的任何平台进行设置。

按照这些步骤进行操作之前,请确保您具备可靠的互联网连接。根据互联网连接的速度, 可能需要几分钟到几个小时的时间来下载工具链。

下载工具链

  1. 请下载适合您的引擎版本的交叉工具链。

  2. 现在,创建一个新文件夹并命名为“Linux_CrossCompileToolChain”。

    单击显示全图。

    如果您要使用其他命名约定,请将首选文件夹名称替换为我们为演示目的而选择的名称。

  3. 提取(Extract) 工具链,请务必将提取的文件的目标位置设置为您在上一步中创建的文件夹。

    LinuxXC_Step3.png

    单击显示全图。

  4. 打开“[根]/Linux_CrossCompileToolChain/v11_clang-5.0.0-centos7”文件夹以查看提取的文件。

    单击显示全图。

              ### 支持的平台

    请参阅下表下载适合您的UE4版本的工具链:

    架构

    子架构

    供应商

    系统

    应用程序二进制接口(abi)

    AArch64

    N/A

    未知

    Linux

    gnueabi

    ARM

    N/A

    未知

    Linux

    gnueabihf

    i686

    N/A

    未知

    Linux

    gnu

    x86_64

    N/A

    未知

    Linux

    gnu

    请注意,我们尚未为i686平台添加引擎库。

设置环境变量

  1. 在设置“LINUX_MULTIARCH_ROOT”环境变量之前,双击 安装(Setup) 批处理文件(Setup.bat),以输出适合您的计算机的环境变量设置。

    单击显示全图。

  2. 此时,一个新的 OutputEnvVars 文本文件应位于“v11_clang-5.0.0-centos7”文件夹内。

    单击显示全图。

    “OutputEnvVars.txt”文件包含用于设置系统环境变量的有用信息。

  3. 一同按下 Windows键(Windows Key)暂停中断键(Pause Break Key) 以打开 系统信息(System Information) 菜单。 现在,单击 高级系统设置(Advanced System Settings) 链接以打开 高级(Advanced) 子菜单,该子菜单位于 系统属性(System Properties) 菜单中。

    单击显示全图。

  4. 现在单击 环境变量...(Environment Variables...) 按钮。

    LinuxXC_Step9.png

  5. 若要添加新的 环境变量(System Variable),请单击 系统变量(System variables) 下的 新建...(New...) 按钮。

    LinuxXC_Step10.png

    如果您尚未打开“OutputEnvVars.txt”,请在执行下一步之前打开。

    单击显示全图。

  6. 新系统变量(New System Variable) 对话框菜单打开后,将“LINUX_MULTIARCH_ROOT”环境变量设置复制到 新系统变量(New System Variable) 对话框的文本框中。

    单击显示全图。

  7. 返回 环境变量(Evironment Variables) 菜单后,单击 确定(OK) 按钮以保存“LINUX_MULTIARCH_ROOT”环境变量。

    LinuxXC_Step14.png

    请注意,如果您已设置了“LINUX_ROOT”环境变量,则无需删除它,因为引擎在打包过程中会优先考虑“LINUX_MULTIARCH_ROOT”而非“LINUX_ROOT”。

  8. 现在,单击 确定(OK) 按钮以关闭 系统属性(System Properties) 菜单。

    LinuxXC_Step15.png

    既然您已经向系统添加了一个新的环境变量(Environment Variable),接下来需要关闭并重新启动 Visual Studio命令提示符(Command Prompt) 的所有当前正在运行的实例。

设置Linux构建配置

如果您以前从未为Linux打包过项目,那么您需要遵循以下步骤。

  1. 打开 命令提示符(Command Prompt),运行“[UE4 ROOT]/Setup.bat”以检查、更新和安装先决条件依赖项,以从 Visual Studio 构建UE4。

    LinuxXC_Step17.png

  2. 运行“[UE4根]/GenerateProjectFiles.bat”以为UE4设置项目文件。

    LinuxXC_Step18.png

    “GenerateProjectFiles.bat”必须在UE4所在的根文件夹内运行(“[UE4根]”)。如果您使用虚幻游戏同步 运行批处理文件,Linux将不会在 Visual Studio 中显示为有效的 构建配置(Build Configuration)

  3. 导航至“[UE4根]”,双击 UE4.sln 以在 Visual Studio 中打开UE4解决方案。

    单击显示全图。

  4. 如果您尚未构建UE4,则请继续操作,并按下 F5 键以从 Visual Studio 构建并运行UE4。

    单击显示全图。

  5. 现在,停止运行引擎,回到 Visual Studio,选择 Visual Studio 中的 Linux 解决方案平台。您可以通过按下以下键盘组合来构建Linux:Ctrl+Shift+B

    单击显示全图。

    此时,您应该看到工具链显示在 Visual Studio 的 输出窗口(Output Window) 中。

    单击显示全图。

面向特定平台

由于4.14版本只面向x86_64平台,因此以下部分为使用4.15版本的开发人员而专门提供。

如果您希望您的项目面向特定的平台,则需要编辑项目的默认引擎配置文件 文件。为此,请导航到 文件位置(“[项目目录]\Config”),并打开“DefaultEngine.ini”以添加以下行:

[/Script/LinuxTargetPlatform.LinuxTargetSettings]
TargetArchitecture=X86_64UnknownLinuxGnu

自行决定将“TargetArchitecture”设置为以下任意值:

  • X86_64UnknownLinuxGnu

  • ArmUnknownLinuxGnueabihf

  • AArch64UnknownLinuxGnueabi

最终结果

祝贺您!接下来,您应该能够看到在为Linux打包项目时使用的交叉编译工具链。

单击显示全图。

现在,您即可随时从您的Windows(主机)计算机为各种Linux平台编译构建打包 项目。

Tags