如果使用Make进行编译失败,则执行命令

时间:2010-07-30 21:32:38

标签: gcc makefile compiler-errors

使用GNU Make和gcc中的一个编译器:如果(并且仅当)编译失败,是否可以执行命令?

1 个答案:

答案 0 :(得分:2)

如果使用-为命令添加前缀,即使命令返回非零错误代码,make也会继续运行。但是没有办法从第二个命令中的第一个命令访问错误代码。

您可以在单个make命令中编写任意复杂的shell脚本。例如,以下是如果C编译器出现故障时如何调用两个恢复命令,仅在第一个失败时运行第二个恢复命令,然后在C编译器失败时停止构建过程。

$(CC) $(CFLAGS) -o $@ -c $< || { \
  recovery_command_1 && \
  recovery_command_2; \
  false; \
}