makefile 的错误检查行为

ret*_*n 0 5 makefile return-value

如果我的程序必须为不同的结果(主要是错误)返回不同的值(例如 0、1、2、3 等),那么调用该程序的 makefile 将不得不停止执行其余的 makefile 命令。即使该命令产生错误(返回非零值),有没有办法继续执行 makefile?

谢谢你们。

ctr*_*lor 3

mycommand; test $? -gt 3 
Run Code Online (Sandbox Code Playgroud)

根据需要更改测试。我认为使用-or-k不是一个好主意,因为它会阻止make检测错误。

请注意,在 makefile 中,这 2 个命令必须位于同一行。

添加评论反馈后: 您还可以执行以下操作,以允许您在对错误做出反应之前无条件运行后续命令:

mycommand; status=$PIPESTATUS; follow-on-command && test $status -gt 3
Run Code Online (Sandbox Code Playgroud)