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

发布于 2024-09-12 09:12:59 字数 53 浏览 2 评论 0原文

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

With GNU Make and one of the compilers in gcc: Is it possible to execute commands if (and only if) the compiling fails?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

我的黑色迷你裙 2024-09-19 09:12:59

如果为命令添加前缀 -,则即使该命令返回非零错误代码,make 也会继续执行。但无法从第二个命令中的第一个命令访问错误代码。

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

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

If you prefix a command with -, make keeps going even if the command returns a nonzero error code. But there's no way to access the error code from the first command in the second command.

You can write arbitrarily complex shell scripts in a single make command. For example, here is how to call two recovery commands if the C compiler fails, running the second one only if the first one fails, and then stopping the build process if the C compiler failed.

$(CC) $(CFLAGS) -o $@ -c 
lt; || { \
  recovery_command_1 && \
  recovery_command_2; \
  false; \
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文