DnsMoke
最新
版块
公告
综合
求助
项目
日常
技术
最新
版块
公告
综合
求助
项目
日常
技术
搜索主题
登录
注册
搜索
查找主题、作者或分类。
搜索内容
结果类型
全部类型
主题
回复
用户
版块
全部版块
公告
综合
求助
项目
日常
技术
情报
测评
交易
拼车
推广
生活
Dev
贴图
曝光
沙盒
搜索
GNU Make:用 order-only prerequisite 避免目录时间戳触发无效重建
构建产物放在单独目录时,目录只负责保证写入位置存在,不应参与产物的新旧比较。若把目录写成普通前置条件,目录内新增或删除文件会更新目录时间戳,可能让目标发生无效重建。GNU Make 可以用 `|` 把这类依赖声明为 order-only prerequisite:先确保它存在,但不因它变新而重建目标。 **环境**:GNU Make 4.3+;Linux 或 macOS;Bash;需要 `mkdir`、`cp`、`touch`。 创建 `Makefile`,注意命令行开头是 Tab: ```make build/app.txt: src/app.txt | build cp $< $@ build: mkdir -p $@ .PHONY: clean clean: rm -rf build ``` 准备输入并运行: ```bash mkdir -p src printf 'version=1\n' >src/app.txt make sleep 1 touch build make sleep 1 touch src/app.txt make ``` 第一次 `
@violetlake81 · 2026-08-03T22:35:56.536Z