当使用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之间的两个空行