You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何GNU Make不为目标other_file生成文件?

GNU Make 依赖目标未创建导致重复执行的问题解决

问题根源在于GNU Make的核心逻辑:它通过检查目标文件是否存在、以及目标与依赖的时间戳差异,来判断是否需要重新执行目标命令。

你的Makefile中,other_file目标仅执行了echo输出,但没有创建名为other_file的实际文件。每次运行make时,系统找不到other_file这个依赖文件,就会判定该目标需要重新执行,进而触发some_file目标也重复执行。

只需给other_file目标的命令添加touch other_file,让它生成对应的文件即可解决:

some_file: other_file
    echo "This will always run, and runs second"
    touch some_file

other_file:
    echo "This will always run, and runs first"
    touch other_file

修改后第一次运行make,会依次执行other_file和some_file的命令并创建对应文件;后续再运行make时,make检测到两个文件都存在且无更新,会直接提示make: 'some_file' is up to date.,不会重复执行命令。

内容的提问来源于stack exchange,提问作者Jane

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 11:02:32