使用GNU Make和gcc中的一个编译器:如果(并且仅当)编译失败,是否可以执行命令?
答案 0 :(得分:2)
如果使用-
为命令添加前缀,即使命令返回非零错误代码,make也会继续运行。但是没有办法从第二个命令中的第一个命令访问错误代码。
您可以在单个make命令中编写任意复杂的shell脚本。例如,以下是如果C编译器出现故障时如何调用两个恢复命令,仅在第一个失败时运行第二个恢复命令,然后在C编译器失败时停止构建过程。
$(CC) $(CFLAGS) -o $@ -c $< || { \
recovery_command_1 && \
recovery_command_2; \
false; \
}