Skip to content

编译与测试

安装脚本是推荐入口;需要单独配置、增量构建或定位 CI 问题时,可直接使用相同的 CMake Preset。

构建配置

安装脚本支持两种配置:

配置用途说明
Debug本地开发和 C++ 调试引擎保留调试信息;仍链接 Release Python 3.12 ABI
Release性能测试和正式部署默认配置,启用发布优化

三平台安装脚本都会:

  1. 检查或准备宿主机构建工具;
  2. kbe/vcpkg 初始化 vcpkg;
  3. 根据 manifest 和固定 baseline 恢复依赖;
  4. 使用对应 CMake Preset 配置工程;
  5. 构建 kbe_serverskbe_tests
  6. 将服务端程序和 Python 3.12 运行时部署到 kbe/bin/server

首次构建需要编译 Python、数据库驱动和其他第三方库,耗时取决于 CPU、磁盘和网络。后续未修改 baseline、triplet 和依赖版本时,会复用已有 vcpkg 与构建缓存。

手动使用 CMake Preset

日常增量编译可以跳过安装脚本,直接从 kbe/src 使用 Preset。前提是 vcpkg 和宿主工具已经准备完成。

Windows

powershell
cd kbe\src
cmake --preset windows-ninja
cmake --build --preset windows-ninja-tests-release --target kbe_servers kbe_tests --parallel

Linux

sh
cd kbe/src
cmake --preset linux-ninja
cmake --build out/build/linux-ninja --config Release \
  --target kbe_servers kbe_tests --parallel

macOS

sh
cd kbe/src
cmake --preset macos-ninja
cmake --build out/build/macos-ninja --config Release \
  --target kbe_servers kbe_tests --parallel

配置发生较大变化、baseline 更新或切换 triplet 时,可以使用 cmake --fresh --preset ... 重新生成。不要把删除整个 vcpkg 下载缓存作为常规增量构建步骤。

Windows 默认构建使用 windows-ninja。需要生成 .sln 并从 Visual Studio 浏览或调试源码时,应使用专门的 Visual Studio Preset,详见 生成 Visual Studio 工程。Ninja 与 Visual Studio 使用不同的构建目录,不要将一个生成器写入另一个生成器已经配置的目录。

运行测试

安装脚本会构建测试程序,但不会替你运行全部 CTest。构建成功后可以执行:

Windows

powershell
cd kbe\src
ctest --preset windows-ninja-release

Linux

sh
cd kbe/src
ctest --preset linux-release

macOS

sh
cd kbe/src
ctest --preset macos-release

Debug 构建分别使用 windows-ninja-debuglinux-debugmacos-debug。出现 Not Run 时,应先检查对应测试目标是否完成编译以及 CTest 配置是否与构建配置一致。

构建产物

成功后,以下组件会出现在 kbe/bin/server

  • machine
  • logger
  • interfaces
  • dbmgr
  • baseappmgr
  • cellappmgr
  • baseapp
  • cellapp
  • loginapp
  • bots
  • kbcmd

Windows 文件带 .exe 后缀。Python 3.12 动态库会部署到服务端程序旁,标准库和原生标准扩展部署到 kbe/res/scripts/common 的对应目录。

Linux 服务端通过相对 $ORIGIN、macOS 通过 @loader_path、Windows 通过可执行文件目录解析同目录动态库。因此仓库或发布目录可以整体移动,但必须保持 kbe/bin/serverkbe/res 的相对结构。