Linux 交叉编译

LinuxXC_Banner.png

交叉编译工具链近期获得了更新,使虚幻引擎 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 中生成引擎。完成以下步骤后,您将完成主机环境的设置,以便针对当前支持的平台进行开发。

执行这些步骤之前,请确保网络连接稳定可靠。下载工具链的时间从数分钟到数小时不等,具体取决于您的网络连接速度。

下载工具链

  1. 点击 链接 下载基于 Clang 3.9.0 的工具链。

  2. 新建一个文件夹,将其命名为 Linux_CrossCompileToolChain

    点击查看全图。

    如果您使用其他的命名规则,则需要用您选择的文件名替换此处用于展示说明的文件名。

  3. 解压 工具链,必须将文件解压到之前步骤中创建的目标文件夹。

    LinuxXC_Step3.png

    点击查看全图。

  4. 打开 [ROOT]/Linux_CrossCompileToolChain/v8_clang-3.9.0-centos7 文件夹查看解压文件。

    点击查看全图。

    支持平台

    请参照下表,了解您使用的 UE4 版本能够针对的平台:

    架构

    子架构

    供应商

    系统

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

    UE 4.14 支持

    UE.4.15 支持

    AArch64

    N/A

    Unknown

    Linux

    gnueabi

    ARM

    N/A

    Unknown

    Linux

    gnueabihf

    i686

    N/A

    Unknown

    Linux

    gnu

    x86_64

    N/A

    Unknown

    Linux

    gnu

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

设置环境变量

  1. 设置 LINUX_MULTIARCH_ROOT 环境变量之前,双击 Setup 批处理文件(Setup.bat)输出适合您电脑的环境变量设置。

    点击查看全图。

  2. 此时,v8_clang-3.9.0-centos7 文件夹中应出现一个新的 OutputEnvVars 文本文件。

    点击查看全图。

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

  3. 同时按下 Windows 键Pause Break 键 打开 System Information 菜单。 然后点击 Advanced System Settings 链接打开 Advanced 子菜单(位于 System Properties 菜单中)。

    点击查看全图。

  4. 点击 Environment Variables... 按钮。

    LinuxXC_Step9.png

  5. 点击 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

    为系统添加新环境变量后,需要关闭并重启当前运行的所有 Visual StudioCommand Prompt 实例。

设置 Linux 生成配置

如从未针对 Linux 打包项目,则需要按以下步骤操作。

  1. 打开 Command Prompt,运行 Setup.bat 检查、更新并安装从 Visual Studio 生成 UE4 的必备依赖性。

    LinuxXC_Step17.png

  2. 运行 GenerateProjectFiles.bat 设置 UE4 的项目文件。

    LinuxXC_Step18.png

    GenerateProjectFiles.bat 必须在 UE4 所在的根文件夹中运行([UE4 ROOT])。如果使用 Unreal Game Sync 运行批处理文件,Linux 不会在 Visual Studio 中显示为有效 Build Configuration

  3. 前往 [UE4 根目录],双击 UE4.slnVisual Studio 中打开 UE4 解决方案文件。

    点击查看全图。

  4. 如尚未生成 UE4,需要按下 F5 键从 Visual Studio 生成和运行 UE4

    点击查看全图。

  5. 停止运行引擎,返回 Visual Studio 选择 Visual Studio 中的 Linux 解决方案平台。按下此组合键可进行 Linux 生成:Ctrl+Shift+B

    点击查看全图。

    此时,您可以在 Visual Studio 的 输出窗口 中看到显示的工具链。

    点击查看全图。

针对特定平台

因为 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 平台的项目。

Tags