# KtRoot **Repository Path**: phoenixwing/KtRoot ## Basic Information - **Project Name**: KtRoot - **Description**: C++ 输出库。适配 KtCore 和 PNXCaaStudy 等 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-08-22 - **Last Updated**: 2026-08-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # KtRoot ## 环境变量设定 按平台加载对应环境设置脚本,或手动设置以下环境变量: ```text Windows: PowerShell . .\tools\envSet.ps1 macOS: Shell . ./tools/envSet-macos.sh Linux: Shell . ./tools/envSet-linux.sh ``` | 环境变量 | 含义 | Windows 示例 | | --------------------- | ------------------------------------ | ----------------------------- | | `CAA_MK_VERSION` | CAA/RADE 版本 | `19` | | `ROOT_DIR` | SDK 根目录 | `E:\KtRoot` | | `SDK_PREFIX` | SDK 平台目录前缀 | `kt` | | `ROOT_DIR_3rdParty` | 第三方库根目录 | `E:\3rdParty` | | `ROOT_DIR_CORE` | Core 根目录(头文件及 CAA 兼容路径) | `E:\KtRoot\kt\core` | | `ROOT_DIR_INCLUDE` | 公共头文件目录 | `E:\KtRoot\kt\core\include` | 规则: - `ROOT_DIR_CORE` 按平台设置;Windows、macOS、Linux 可以分别指向不同目录。 - `ROOT_DIR_CORE` 是环境变量,默认指向 `ROOT_DIR/kt/core`,不是 macOS/Linux 的平台输出目录。 - `ROOT_DIR_INCLUDE` 默认取 `ROOT_DIR_CORE/include`;显式设置时使用指定目录。 - KtCore 头文件不区分操作系统;DLL、动态库和链接库按操作系统分别归档到 `ROOT_DIR_CORE`。 - 平台库输出目录由 CMake 根据系统推断:Windows 为 `kt/core`,macOS 为 `kt/macos/core`,Linux 为 `kt/linux/core`。 - 如果 `ROOT_DIR_CORE` 为空,CMake 才根据 `ROOT_DIR` 和当前系统进行推断。 - 如果公司 SDK 前缀不是 `kt`,请显式设置 `ROOT_DIR_CORE` 和 `ROOT_DIR_INCLUDE`。 - macOS/Linux 的 shell 脚本需要使用 `source` 或 `.` 加载,直接执行不会修改当前终端环境。 ## 目录总览 KtRoot 按平台归档库文件,KtCore 头文件统一保存一份: ```text KtRoot/ ├── README.md ├── LICENSE ├── docs/ # SDK 规则和技术文档 ├── tools/ # 环境设置和辅助脚本 └── kt/ ├── core/ # Windows SDK,包括 bin/debug/include/lib/cmake ├── macos/core/ # macOS SDK,保存 bin/debug/include/lib/cmake └── linux/core/ # Linux SDK,保存 bin/debug/include/lib/cmake ``` 默认头文件目录为 `kt/core/include/KtCore`,CAA 的引用路径保持不变: ```cpp #include ``` 详细的环境变量、平台目录、CMake、库文件和构建规则见: - [Core SDK 与 CMake 目录规则]() - [CMake 公共模块与项目接入规则]() ## tools 脚本 `tools/` 目录集中存放环境设置、CAA 构建、CMake 出库构建和代码格式化脚本。完整说明见 [tools 脚本说明](docs/tools脚本说明.md)。 | 脚本 | 作用 | | ---------------------------------------------------------- | -------------------------------------------------------------- | | `envSet.ps1` / `envSet-linux.sh` / `envSet-macos.sh` | 设置`ROOT_DIR`、`SDK_PREFIX`、`ROOT_DIR_CORE` 等环境变量 | | `commonLoad.ps1` | 出库仓入口,加载`common*.ps1` | | `common.ps1` | CAA / 批处理通用函数 | | `commonExport.ps1` | 头文件与 SDK 包导出(`Invoke-Export` 等) | | `commonCmake.ps1` | CMake 构建、清理、批量开构建窗口 | | `buildFunction.ps1` | 单配置 CMake 构建(Debug / Release 窗口入口) | | `clangfile.ps1` | 递归`clang-format`(`-Check` 检查 / 默认 `-Fix` 修复) | | `clang-format/.clang-format` | 各出库统一使用的 clang-format 配置范本 | | `export.ps1` / `rebuild.ps1` / `clangfile.ps1` | 放在各出库源码仓根目录的转发脚本(逻辑在 KtRoot) | | `mk.ps1` | CAA`mkmk` 编译流程,末尾汇总错误 | | `run.ps1` | CAA 启动 CNEXT(`mkrun -c cnext`) | | `buildErrorSummary.ps1` | 编译输出错误分类汇总(`mk.ps1` 内部使用) | | `LinkWinb64Common.ps1` | CAA`win_b64` 目录符号链接辅助(供链接脚本 dot-source) | 出库 CMake 仓典型用法: ```powershell . .\tools\envSet.ps1 # 或在出库仓已配置 ROOT_DIR 时跳过 .\export.ps1 # 导出头文件 / 二进制到 ROOT_DIR_CORE .\rebuild.ps1 # 清理 build → export → 开 Debug/Release 窗口 .\clangfile.ps1 -Check # 格式检查(CI) ``` 新建或统一出库库配置时,将 [`tools/clang-format/.clang-format`](tools/clang-format/.clang-format) 复制到库根目录;该文件是统一格式范本,应与各库的 `.clang-format` 保持一致。 ## CAA 编译错误汇总 项目中的 `mk.ps1` 通常只是调用 KtRoot 的 `tools/mk.ps1`。KtRoot 脚本会保留编译器原始输出,并在末尾汇总错误: - 小 `error`:默认显示,通常表示会导致编译失败的编译器或链接器错误。 - 大 `ERROR`:默认只显示数量;这类信息通常来自 CAA 工具流程,不一定阻止编译。 - 使用 `-ShowMajorErrors` 可在末尾同时显示大 `ERROR` 的完整列表。 编译器输出中的 `文件(行,列): error ...` 格式会保留,Windows Terminal 和 VS Code Terminal 通常可以直接识别并跳转到对应源文件。 示例: ```powershell .\mk.ps1 .\mk.ps1 -ShowMajorErrors ```