2.2.2 Ninja 构建工具原理 2.2.2 Ninja 构建工具原理:从依赖图遍历到增量执行的底层实现解剖 你有没有在凌晨三点守着 CI 流水线,看着 C++ 项目编译时间从 47 秒跳到 128 秒,而 Git diff 显示只改了一行 ? 你有没有打开 输出的 DOT 文件,发现那张密密麻麻、节点数破万的有向图里,某个 文件竟被标记为“NEEDSREBUILD”,可它的源文件时间戳明明比它新——却死活查不出谁篡改了它的隐式依赖? 你有没有在 里反复调整 大小、 路径、 格式,只为把链接阶段的磁盘 I/O 瓶颈压低 300ms,却始终卡在 的幽灵警告上?