如何在GNU中合成换行符发出警告或错误?

0xC*_*22L 9 makefile gnu-make

当使用GNU Make的b uilt-in $(error text)$(warning text)函数时,如何在没有杂技的情况下将错误/警告输出换行?

通过杂技我的意思是有趣的方法,如这两个:

$(warning $(shell /bin/echo -e "something\nfoo\nbar\nbaz"))
$(warning $(shell /bin/bash -c 'echo  -e "something\nfoo\nbar\nbaz"'))
Run Code Online (Sandbox Code Playgroud)

哪个,顺便说一句,在Ubuntu 10.04上使用GNU Make 3.81不适合我.

基本原理:我想在条件部分(ifeq,ifneq)中使错误输出GNUmakefile更具可读性.


我目前的解决方法是使用每一行:

$(warning ...)
Run Code Online (Sandbox Code Playgroud)

最后一行:

$(error ...)
Run Code Online (Sandbox Code Playgroud)

Eri*_*ler 20

使用define/endef定义换行符变量并将其用作$ n,如下所示:

define n


endef

$(warning "something$nfoo$nbar$nbaz")
Run Code Online (Sandbox Code Playgroud)

注意define和endef之间的两个空行

  • 根据响应,我发现我可以创建一个变量来显示您想要显示的消息。 (3认同)