如何在Makefile中打印消息?

107

在使用makefile进行构建过程时,我想打印一些消息。以下代码可以打印消息,但它不会执行其后的脚本。如何解决这个问题?

ifeq (yes, ${TEST})
        CXXFLAGS := ${CXXFLAGS} -DDESKTOP_TEST
test:
        @echo '************  TEST VERSION ************'
else
release:
        @echo "************ RELEASE VERSIOIN **********"
endif

2
“它后面的脚本”?什么脚本? - Beta
1
@Beta 他可能是指脚本在这一行之后没有继续运行。 - basickarl
2个回答

128

$(info your_text) : 信息。这不会停止执行。

$(warning your_text) : 警告。这将以警告的形式显示文本。

$(error your_text) : 致命错误。这将停止执行。

详细信息请参阅GNU make: 8.13 控制 Make 的函数


如何在 Makefile 中打印变量? - CS QGB
如果你在询问关于shell变量的问题,请参考https://dev59.com/GVYN5IYBdhLWcg3wfYK9#47367937。 - Wolf

123

你的意图不是很清晰,也不清楚你是否希望这个技巧可以应用于不同的目标,或者你是否在其他地方定义了这些目标,以及你正在使用哪个版本的Make。但是无论如何,我还是来试试:

ifeq (yes, ${TEST})
CXXFLAGS := ${CXXFLAGS} -DDESKTOP_TEST
test:
$(info ************  TEST VERSION ************)
else
release:
$(info ************ RELEASE VERSIOIN **********)
endif

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接