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

使用make --keep-going时,依赖配方失败后如何执行主目标配方

Make --keep-going 模式下依赖失败仍执行主目标配方的解决方案

我在使用make的--keep-going选项(这是我们构建宏中的默认未启用选项,用于执行完整构建)时遇到了问题:这个选项本应让make在返回非零状态退出前,继续处理待处理目标的其他依赖项,必要时重新构建它们,但当某个依赖项的配方执行失败时,主目标的配方完全不会执行。我希望即使在这种情况下,主目标的配方仍能执行,尝试过--ignore-errors选项但没有效果。

我的Makefile规则示例如下:

program.exe: program.txt module.linkable
    link to exe

module.linkable: module.txt
    compile to linkable

当module.linkable的编译规则执行失败时,program.exe的链接规则不会执行,但我需要在启用--keep-going时仍能触发该链接规则。

解决方案

我已经找到了解决办法:在编译/链接的配方中,原本程序执行失败时会调用exit 100返回非零状态码,将其改为exit 0后,问题就解决了。由于exit 100是构建宏的默认行为,我可以通过给构建宏传入特殊参数,让make在编译/链接失败时执行exit 0。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 21:57:02