执行命令,如果编译失败,并生成

问题描述:

使用GNU Make和gcc中的编译器之一:是否有可能在编译失败时执行命令?执行命令,如果编译失败,并生成

+0

您的意思是如果make命令失败,或者其中一个目标中的某个命令失败? – 2010-07-30 21:54:44

如果以-作为前缀命令,即使该命令返回非零错误代码,make仍会继续。但是无法从第二个命令中的第一个命令访问错误代码。

您可以在一个make命令中编写任意复杂的shell脚本。例如,如果C编译器失败,那么如何调用两个恢复命令,如果第一个失败,则运行第二个恢复命令,如果C编译器失败,则停止构建过程。

$(CC) $(CFLAGS) -o [email protected] -c $< || { \ 
    recovery_command_1 && \ 
    recovery_command_2; \ 
    false; \ 
} 
+0

整洁!正是我在找什么。 – Paul 2010-07-30 21:54:41