build-verifylisted
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` 但没重开日志就下结论 | 日志必须来自本次重建 |