Version:

Open 3D Engine 在 Linux 上

Open 3D Engine (O3DE) 包括对 Linux 平台的支持。了解如何使用此处包含的说明为受支持的 Linux 版本构建 O3DE 工具和项目。

先决条件

以下说明假定您已:

  • 在 GitHub 中以项目为中心的 源引擎 配置中设置 O3DE。如需帮助,请参阅 从 GitHub 设置 O3DE
  • 在 O3DE 清单中注册了 O3DE 引擎。如果您从 GitHub 设置 O3DE,则必须手动注册引擎。如需帮助,请参阅 注册引擎
  • 满足 O3DE 系统要求 中列出的所有 Linux 硬件和软件要求。
注意:
这些说明使用 $O3DE_ENGINE 来引用 O3DE 源代码在本地文件系统上的绝对路径。

创建 O3DE 项目

如果您尚未创建 O3DE 项目,请立即使用 o3de 脚本进行创建。 $O3DE_PROJECT_PATH指项目的绝对路径,$O3DE_PROJECT_NAME引用项目的名称。

$O3DE_ENGINE/scripts/o3de.sh create-project --project-path $O3DE_PROJECT_PATH

有关创建新 O3DE 项目的更多信息,请参阅 使用命令行界面创建项目

生成 build 文件夹

尽管 CMake 在 Linux 上支持 Unix Make Files,但我们建议您使用 Ninja 作为构建系统,以支持生成的构建中的多个配置。这些说明使用 “Ninja Multi-Config” 作为 CMake 生成器。

重要:
使用 O3DE 预构建 Snap SDK 进行构建时,首先导出O3DE_SNAP环境变量,以便 CMake 不会尝试安装 Python pip 要求并失败。要导出O3DE_SNAP环境变量,请在运行下面的 CMake 命令之前从命令行运行命令 export O3DE_SNAP

多个 Config 构建

以下命令使用 Ninja 作为构建生成器,使用 clang-12 作为编译器,在项目文件夹$O3DE_PROJECT_PATH的根目录下生成一个构建文件夹 build/linux


cd $O3DE_PROJECT_PATH

cmake -B build/linux -S . -G "Ninja Multi-Config"

单个配置构建

如果你不需要生成多配置构建文件夹,你可以指定 “Unix Makefiles” 作为 CMake 的生成器。您需要在项目生成时指定配置。$BUILD_CONFIG 的有效值包括:debug, profile, 和 release


cd $O3DE_PROJECT_PATH

cmake -B build/linux -S . -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=$BUILD_CONFIG

从命令行构建

生成 build 文件夹后,从命令行构建的过程与其他平台相同。

重要:
使用 O3DE 预构建 Snap SDK 进行构建时,首先导出O3DE_SNAP环境变量,以便 CMake 不会尝试安装 Python pip 要求并失败。要导出O3DE_SNAP环境变量,请在运行下面的 CMake 命令之前从命令行运行命令 export O3DE_SNAP

多个 Config 构建

在构建使用 Ninja Multi-Config 生成器生成的项目时,请在 build 命令中包含构建配置。


cd $O3DE_PROJECT_PATH

cmake --build build/linux --config profile --target $O3DE_PROJECT_NAME.GameLauncher Editor

单个配置构建

在构建使用 Unix Makefile 生成器生成的项目时,CMake 将使用您在项目生成期间指定的配置。


cd $O3DE_PROJECT_PATH

cmake --build build/linux --target $O3DE_PROJECT_NAME.GameLauncher Editor

高级主题

生成编译数据库

要支持代码完成和 IDE (如 Visual Studio)中的其他 IntelliSense 功能,请指示 CMake 生成编译数据库 ( compile-command.json )文件作为项目生成命令的一部分。

注意:
IDE 只有在 Unity 版本关闭时才能使用 compile-command.json 。由于 Unity 版本在 O3DE 中默认启用,因此您需要使用-DLY_UNITY_BUILD=OFF参数显式关闭它。

要启用编译数据库文件的生成,请在工程生成命令中包含以下参数:

-DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DLY_UNITY_BUILD=OFF