Version:

为 Linux 构建

拥有 O3DE 源的本地副本后,您可以构建引擎,包括关键工具,例如 Asset ProcessorO3DE EditorProject Manager。如果您尚未从 GitHub 克隆源代码,请参阅 从 GitHub 设置 O3DE

先决条件

以下说明假定您已:

构建引擎

从源代码构建引擎时,根据开发工作的重点和需求,您有几个配置选项:

  • 构建类型
  • 构建配置

Build type

  1. 源代码引擎 - 如果您计划频繁更改引擎源代码,请选择此构建类型。如果您的主要兴趣是引擎开发,则可以自行构建引擎,也可以使用使用您的自定义构建的项目来构建引擎。

  2. 预构建的 SDK 引擎 – 如果您主要对为项目开发创建可分发引擎感兴趣,并且您计划仅对引擎源进行不频繁的更改,请选择此构建类型。

提示:
如果您不打算对引擎源进行任何更改,请考虑使用 Linux 安装程序 下载并安装 O3DE。

构建配置

  1. Debug - 提供最高级别的调试支持。将避免包括函数内联在内的优化,从而更容易跟踪代码。某些编译器可能会禁用堆栈溢出或其他内存保护运行时检查,使其成为检查影响堆栈的某些类型错误的最佳构建配置。在支持的 IDE 中,这还会启用 “Edit and continue” 支持。

  2. Profile - 提供调试符号支持,但启用优化(相当于 clang -O2,非主动优化)。这是日常工作流程的推荐配置文件,因为它是最具代表性的发布版本,但启用了符号。

  3. Release - 将此函数用于最终发布版本。包括非主动优化,无调试信息。

构建说明

以下说明展示了如何在 profile* 配置中构建 source engine。构建预构建的 SDK 引擎稍微复杂一些。有关详细信息,请参阅用户指南中的 创建可分发引擎版本 主题。

  1. (可选)如果您还没有包目录,请在可写位置创建一个。以下示例使用目录 $HOME/o3de-packages。或者,您可以让构建过程使用 O3DE 安装程序也使用的默认包目录,该目录位于<user>\.o3de\3rdParty中。如果您有多个版本的 O3DE,例如从源构建的引擎和一个或多个已安装的引擎版本,这可以节省磁盘空间。

    mkdir $HOME/o3de-packages
    

    O3DE 包下载器使用此目录来检索引擎所需的外部库。

  2. 获取 Python 运行时,它未包含在 GitHub 存储库中。o3de 脚本(O3DE CLI 的一部分)需要此运行时。您将使用此脚本运行常见的命令行函数。此脚本还要求在设备的路径上安装 CMake 并使其易于访问。如果您尚未安装 CMake,或者收到运行脚本时找不到 CMake 的错误,请参阅 O3DE 系统要求页面以获取安装说明。

    打开终端窗口并切换到设置 O3DE 的目录,然后运行get_python脚本。

    # Run from the o3de engine root.
    python/get_python.sh
    
  3. 使用 CMake 为引擎创建 Linux 构建项目。提供构建目录、Ninja Multi-Config 生成器、您创建的 packages 目录的路径以及任何其他项目选项。路径可以是绝对路径,也可以是相对路径。或者,您可以使用 CMake GUI 完成此步骤。

    cmake -B build/linux -S . -G "Ninja Multi-Config" -DLY_3RDPARTY_PATH=$HOME/o3de-packages
    
    • LY_3RDPARTY_PATH 是可选的自定义定义。(自定义定义以 -D 为前缀。使用它来指定可下载包目录的路径,也称为 “third-party path”。指定 packages 目录的路径时,不要使用尾部斜杠。您也可以关闭此选项以使用默认包目录。
  4. (可选)使用 CMake 构建源引擎。此步骤是可选的,因为在 “source engine” 构建模型中,引擎是在每个项目内部构建的。如果您计划使用项目,为避免重复构建引擎,请考虑等到您学习如何创建和构建项目,这在 项目创建部分进行了介绍。

    以下命令使用 profile 构建配置构建引擎,无需项目。

    cmake --build build/linux --target Editor --config profile -j <number of parallel build tasks>
    

    -j是推荐的构建工具优化。它告诉 Ninja 构建工具将同时执行的并行构建任务的数量。建议使用“并行构建任务数”以匹配 Linux 主机上可用的内核数。

    --config 设置 生成配置类型: debug, profile, 或 release.

    例如:

    cmake --build build/linux --target Editor --config profile -j 8
    

    引擎需要一段时间来构建。如果你已经使用了这些步骤中的所有示例命令,那么当构建完成后,你可以在 $HOME/o3de/build/linux/bin/profile 中找到引擎工具和其他二进制文件。

    注意:
    CMake [unity builds]https://cmake.org/cmake/help/latest/prop_tgt/UNITY_BUILD.html)默认处于开启状态。这是一项 CMake 功能,可以通过将源文件合并为单个编译单元来大大缩短构建时间。如果遇到构建错误,禁用 Unity 构建可能有助于调试问题。要禁用 Unity 构建,请运行带有 -DLY_UNITY_BUILD=OFF 参数的 cmake 项目生成命令以重新生成项目文件。
  5. 首次构建引擎后,请务必使用下一节中的步骤在 O3DE 清单中注册它。

注册引擎

注册 O3DE 引擎使 O3DE 项目能够找到该引擎,即使它们位于计算机上的不同位置。注册过程会在您的用户目录中创建(或更新)O3DE 清单

  1. 在终端窗口中,使用o3de脚本注册引擎。

    # Run from the o3de engine root.
    scripts/o3de.sh register --this-engine
    

    O3DE 清单文件为$HOME/.o3de/o3de_manifest.json。所有已注册的引擎、项目等的路径都记录在此文件中。

现在,您可以创建工程了。有关项目配置的介绍,请参阅 使用 Open 3D Engine 创建项目