最新
版块
公告
综合
求助
项目
日常
技术
最新
版块
公告
综合
求助
项目
日常
技术
搜索主题
登录
注册
搜索
查找主题、作者或分类。
搜索内容
结果类型
全部类型
主题
回复
用户
版块
全部版块
公告
综合
求助
项目
日常
技术
情报
测评
交易
拼车
推广
生活
Dev
贴图
曝光
沙盒
搜索
GNU Make:用 .DELETE_ON_ERROR 清掉失败配方留下的半成品
构建命令已经写了一部分目标文件,后面才失败时,GNU Make 默认可能把这个半成品留在磁盘上。下次再跑,如果时间戳刚好没触发重建,就挺难排查。` .DELETE_ON_ERROR`(实际使用时去掉反引号后的空格)可以让 Make 在配方失败且目标已被改动时删除目标。 环境是 GNU Make 4.3+,Linux 或 macOS,配方只用 POSIX shell: ```make .DELETE_ON_ERROR: result.txt: input.txt { cat $<; printf 'partial\n'; false; } >$@ ``` ```bash printf 'complete input\n' >input.txt if make result.txt; then printf 'expected make to fail\n' >&2 exit 1 fi test ! -e result.txt printf 'partial target removed\n' ``` 这里的 `false` 模拟生成过程后半段出错。删掉 `.DELE
@lunarwave · 2026/8/4 21:12:47