Makefile:打印生成成功或生成失败

Makefile:打印生成成功或生成失败,makefile,gnu-make,Makefile,Gnu Make,我正在使用MaFaFe来构建我的C++项目。有时很难确定构建是成功的还是失败的,这有点烦人。我希望在构建结束时看到一个清晰的声明,就像在gradle一样 如果生成通过: BUILD SUCCESSFUL 如果生成失败: BUILD FAILED 对于积极的情况,我找到了以下解决方案: all: dependencies #every job is done in dependencies echo "BUILD SUCCESSFUL" 最好的方法是什么? Unix(或者任何命令行)

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

如果生成通过:

BUILD SUCCESSFUL
如果生成失败:

BUILD FAILED
对于积极的情况,我找到了以下解决方案:

all: dependencies #every job is done in dependencies
    echo "BUILD SUCCESSFUL"
最好的方法是什么?

  • Unix(或者任何命令行)软件的一个共同原则是“如果一切顺利,保持安静”。当然,Make本身(以及以通常方式编写的makefile)已经左右违反了该规则,但它仍然是一个很好的指导原则
  • Unix命令行程序使用退出状态通信成功/失败,因此在终端中,您可以在调用Make之后立即执行
    echo$?
    <代码>0成功,其他任何东西都不成功
  • 不管上面的美学观点如何,在失败的情况下让Make做一些可靠的事情是很困难的,因为它不是设计来做这件事的。使用shell脚本包装Make调用要容易得多,大致如下:
#!/垃圾箱/垃圾箱 如果使用“$@”;然后 echo构建成功 其他的 回显生成失败 fi
我认为
c
c++
标志与这个问题无关。@kaylum根据,如果
做某事失败,make应该停止处理配方。如果我没弄错的话,实际上我在依赖项中做所有事情,而这个规则中唯一的目标就是echo。我相应地改变了问题。@GregKikola啊,你说得对。
#!/bin/sh

if make "$@"; then
  echo BUILD SUCCESSFUL
else
  echo BUILD FAILED
fi