跳转至

C++ 构建与修复

此命令会调用 cpp-build-resolver 代理,以最小化改动的方式增量修复 C++ 构建错误。

此命令的工作方式

  1. 执行诊断:运行 cmake --build、clang-tidy、cppcheck
  2. 解析错误:按文件分组,并按严重程度排序
  3. 增量修复:一次修复一个错误
  4. 验证每项修复:每次更改后重新构建
  5. 报告摘要:显示已修复项和剩余项

使用时机

使用 /cpp-build 的情况: - cmake --build build 因错误失败时 - 链接器错误(未定义引用、多重定义) - 模板实例化失败 - 头文件包含/依赖问题 - 拉取破坏构建的更改后

执行的诊断命令

# CMake配置
cmake -B build -S .

# ビルド
cmake --build build 2>&1 | head -100

# 静的解析(利用可能な場合)
clang-tidy src/*.cpp -- -std=c++17
cppcheck --enable=all src/

通常修复的错误

错误 典型修复
undeclared identifier 添加 #include 或修正类型错误
no matching function 修正参数类型或添加重载
undefined reference 链接库或添加实现
multiple definition 使用 inline 或移至 .cpp 文件
incomplete type 将前置声明替换为 #include
no member named X 修正成员名或包含头文件
cannot convert X to Y 添加适当的类型转换
CMake Error 修正 CMakeLists.txt 配置

修复策略

  1. 先处理编译错误 — 代码必须能够编译
  2. 再处理链接器错误 — 解决未定义引用
  3. 最后处理警告 — 使用 -Wall -Wextra 修复
  4. 一次修复一个 — 验证每项更改
  5. 最小化更改 — 不重构,仅修复

停止条件

代理在以下情况下停止并报告: - 尝试 3 次后同一错误仍然存在 - 修复引入了更多错误 - 需要架构更改 - 缺少外部依赖

  • /cpp-test — 构建成功后运行测试
  • /cpp-review — 审查代码质量
  • verification-loop 技能 — 完整验证循环
  • 代理:agents/cpp-build-resolver.md
  • 技能:skills/cpp-coding-standards/

本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 ev/ECC