从源码构建
从源码构建终端、后台与可选桌面程序。先准备工具链和前端产物,再配置 CMake。
准备源码与依赖
需要 Git、支持 C++17 的编译器、CMake 3.20 及以上、Ninja 和 vcpkg。Web 前端还需要可用的 Node.js 与 pnpm。Windows 使用正确架构的开发者终端;macOS 准备 Xcode 命令行工具;Linux 准备编译工具与目标平台依赖。
git clone --recurse-submodules https://github.com/tmoonlight/acecode.git
cd acecode
git submodule update --init --recursive仓库中的 vcpkg 清单管理 C++ 依赖,测试依赖由 tests feature 提供。不要把一个平台的 build 目录直接拿到另一平台继续使用;切换架构或工具链时使用新的构建目录。
先构建嵌入式 Web 资源
cd web
pnpm install
pnpm test
pnpm build
cd ..CMake 会读取 web/dist 并把前端产物嵌入程序。修改前端后,需要重新生成这份产物,再重新配置并构建 C++。没有完整前端产物时,后台 API 可能仍能启动,但不会得到完整应用界面。
本帮助文档包与应用前端构建是两套产物:阅读 docs/help 不需要 pnpm,构建 ACECode 应用则需要准备其实际前端。
配置、编译与测试
下面是一条配置命令。把 vcpkg 路径和 triplet 替换为本机实际值;示例使用 Linux x64。Windows 路径可以使用正斜杠并加引号。
cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE="/path/to/vcpkg/scripts/buildsystems/vcpkg.cmake" -DVCPKG_TARGET_TRIPLET=x64-linux -DVCPKG_OVERLAY_PORTS=ports -DVCPKG_MANIFEST_FEATURES=tests -DBUILD_TESTING=ON
cmake --build build --target acecode acecode_unit_tests
ctest --test-dir build --output-on-failure| 目标平台 | 常见 triplet |
|---|---|
| Windows x64 | x64-windows-static |
| Windows ARM64 | arm64-windows-static |
| Linux x64 / ARM64 | x64-linux / arm64-linux |
| macOS Intel / Apple silicon | x64-osx / arm64-osx |
交叉编译还需要相应工具链,不能只改 triplet 就假定可用。构建成功后运行产出的 acecode 显示版本,并用一个小任务或本地健康检查验证目标入口。
可选桌面构建与开发服务器
在前面的配置命令中加入 -DACECODE_BUILD_DESKTOP=ON,再构建 acecode-desktop 与 acecode。桌面程序运行时需要配套后台及平台资源;Windows 依赖 WebView2,Linux 桌面还需要相应 WebKitGTK 环境。详细平台条件以仓库 CMake 和打包工作流为准。
cmake --build build --target acecode acecode-desktop开发 Web 时,当前 Vite 配置将 /api 与 /ws 代理到 127.0.0.1:28080。因此为这个开发流程显式启动 28080 的独立后台,再在另一个终端运行 pnpm dev;它与未配置后台默认端口 12399 不同。
acecode daemon --foreground --port=28080cd web
pnpm dev开发服务器用于本地调试;发布包还需按项目打包流程收集资源并验证,不等同于复制一个编译出的可执行文件。