【问题标题】:Execute commands if compiling fails with Make如果使用 Make 编译失败,则执行命令
【发布时间】:2010-07-30 21:32:38
【问题描述】:

使用 GNU Make 和 gcc 中的编译器之一:是否可以在(且仅当)编译失败时执行命令?

【问题讨论】:

  • 你的意思是如果 make 命令失败,或者如果其中一个目标中的命令之一失败?

标签: gcc makefile compiler-errors


【解决方案1】:

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

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

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

【讨论】:

  • 整洁!正是我想要的。
猜你喜欢
  • 1970-01-01
  • 2011-12-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-01
  • 2020-07-01
相关资源
最近更新 更多