Gcc 如果编译失败,请使用Make执行命令

Gcc 如果编译失败,请使用Make执行命令,gcc,makefile,compiler-errors,Gcc,Makefile,Compiler Errors,使用GNU Make和gcc中的一个编译器:如果(并且仅当)编译失败,是否可以执行命令?如果在命令前面加上-,即使命令返回非零错误代码,Make也会继续运行。但是无法从第二个命令中的第一个命令访问错误代码 您可以在单个make命令中编写任意复杂的shell脚本。例如,下面是如何在C编译器失败时调用两个恢复命令,仅在第一个失败时运行第二个命令,然后在C编译器失败时停止构建过程 $(CC) $(CFLAGS) -o $@ -c $< || { \ recovery_command_1 &a

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

如果在命令前面加上
-
,即使命令返回非零错误代码,Make也会继续运行。但是无法从第二个命令中的第一个命令访问错误代码

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

$(CC) $(CFLAGS) -o $@ -c $< || { \
  recovery_command_1 && \
  recovery_command_2; \
  false; \
}
$(CC)$(CFLAGS)-o$@-c$<||{\
恢复命令1&&\
恢复命令2\
虚假的\
}

整洁!这正是我想要的。你的意思是如果make命令失败,或者如果其中一个目标中的一个命令失败?