根据Make文档:
http://www.ecoop.net/coop/translated/GNUMake3.77/make_8.html#SEC80
The only processing make does on the result, before substituting it into the surrounding text, is to convert each newline or carriage-return / newline pair to a single space. It also removes the trailing (carriage-return and) newline, if it’s the last thing in the result.
为什么Make会做这个处理?
没有递归通配符命令,能够从find返回分隔列表肯定会很好.
最佳答案 使用变量时,变量的值将被替换.
Make docs(如C中的“定义”).
新行会对make的解析能力造成严重破坏.
虽然可以在变量中包含新行:
Another question
我想这只是因为“没有新行”是最常用的情况.在尝试替换它们之前,您可以使用其他shell命令将这些新行替换为其他内容.