← ClaudeAtlas

build-verifylisted

使用时机:嵌入式工程(Keil/CMake/Make)编译之后需要验证构建产物、排查编译错误/警告、核对 hex/bin 时间戳链时。触发词:Rebuild、编译、0 Error、Warning、hex、产物、构建日志。
KUN11-UAER/kun-embedded-workflows · ★ 1 · Web & Frontend · score 57
Install: claude install-skill KUN11-UAER/kun-embedded-workflows
# Build-Verify(编译验证) ## Overview 「编译通过」的标准不是看到绿色或 exit 0,而是:**完整 Rebuild + 0 Error + Warning 逐条交代 + 产物时间戳晚于全部源码**。构建命令由各项目在 `CLAUDE.md` 里定义(如 Keil UV4 命令行)。 ## When to Use - 每次编码完成后交付前 - 排查编译错误 / 警告 - 核对 hex/bin 是否是最新源码产物 ## Core Pattern ``` 完整重建(非增量) → 解析日志 → Error=0 + Warning 逐条 → 产物时间戳链 → 记录 ``` - **必须完整 Rebuild**:增量构建可能跳过未变化的文件,掩盖真实状态。 - **Warning 也要逐条记录**:历史警告(如未使用变量/连接号)可能是隐患前兆。 - **时间戳链**:`OBJ/LCD.hex`、`.axf` 的时间必须晚于本次改动的全部 `.c/.h`。 ## Quick Reference ```bash # Keil UV4 完整重建(命令以项目 CLAUDE.md 为准) "/c/Keil_v5/UV4/UV4.exe" -r "USER/LCD.uvprojx" -t "Target 1" -j0 -o rebuild.log # 解析结果 grep -iE "Error|Warning" rebuild.log tail -5 rebuild.log # 期望 "0 Error(s), 0 Warning(s)" ls -la --time-style=full-iso OBJ/LCD.hex # 时间戳晚于全部源码 ``` ## 验收标准 1. `0 Error(s), 0 Warning(s)`(或 Warning 逐条记录并说明为何无害)。 2. 产物(hex/axf)时间戳晚于本次全部源码修改。 3. 非默认优化级别(如 -O3)与项目声明一致。 ## Common Mistakes | 错误 | 现实 | |------|------| | "看到 Build Target 成功就行" | 可能是增量构建,未验证全部文件 | | "只有 Error 要管,Warning 无所谓" | Warning 常是隐患前兆,必须逐条记录 | | "产物文件存在就够" | 时间戳旧 = 烧的是旧固件 | | 用 `-j0` 但没重开日志就下结论 | 日志必须来自本次重建 |