Makefile:打印 BUILD SUCCESSFUL 或 BUILD FAILED

u.s*_*nyo 2 makefile gnu-make

我正在使用 Makefile 来构建我的 C++ 项目。有点烦人,有时很难确定构建是成功还是失败。我希望在构建结束时看到一个明确的声明,就像在 gradle 中一样。

如果构建通过:

BUILD SUCCESSFUL
Run Code Online (Sandbox Code Playgroud)

如果构建失败:

BUILD FAILED
Run Code Online (Sandbox Code Playgroud)

对于积极的情况,我找到了这个解决方案:

all: dependencies #every job is done in dependencies
    echo "BUILD SUCCESSFUL"
Run Code Online (Sandbox Code Playgroud)

做这个的最好方式是什么?

Mic*_*hin 5

  • Unix(或任何命令行,真的)软件的一个共同原则是“如果一切顺利,请保持安静”。当然 Make 本身(以及以通常方式编写的 makefile)已经左右违反了该规则,但它仍然是一个很好的指导方针......
  • Unix 命令行程序使用退出状态来传达成功/失败,因此在终端中,您可以echo $?在调用 Make 后立即执行。 0是成功,其他都不是。
  • 不管上面的审美观点如何,让 Make 在失败的情况下可靠地做某事是很困难的,因为它不是设计用来做的。使用 shell 脚本包装 Make 调用要容易得多,如下所示:
#!/bin/sh

如果使“$@”;然后
  echo 构建成功
别的
  回声构建失败
菲