【发布时间】:2010-07-30 21:32:38
【问题描述】:
使用 GNU Make 和 gcc 中的编译器之一:是否可以在(且仅当)编译失败时执行命令?
【问题讨论】:
-
你的意思是如果 make 命令失败,或者如果其中一个目标中的命令之一失败?
标签: gcc makefile compiler-errors
使用 GNU Make 和 gcc 中的编译器之一:是否可以在(且仅当)编译失败时执行命令?
【问题讨论】:
标签: gcc makefile compiler-errors
如果您在命令前加上-,即使命令返回非零错误代码,make 也会继续运行。但是没有办法从第二个命令中的第一个命令访问错误代码。
您可以在单个 make 命令中编写任意复杂的 shell 脚本。例如,这里是如何在 C 编译器失败时调用两个恢复命令,仅在第一个失败时运行第二个命令,然后在 C 编译器失败时停止构建过程。
$(CC) $(CFLAGS) -o $@ -c $< || { \
recovery_command_1 && \
recovery_command_2; \
false; \
}
【讨论】: