POSIX make标准页面可以说明有关转义的换行符(强调我的):
整个makefile中对转义的处理是历史实践。例如,推理规则:
.c.o\ :
有效,宏:
f= bar baz\ biz a: echo ==$f==
回应
"==bar baz biz=="
。
“历史实践”是什么意思?
我是否可以在严格符合的POSIX makefile中使用转义换行符?
答案 0 :(得分:2)
POSIX标准说这是关于转义的换行符(这是实际的标准文本,而不是信息部分或理性的):
当转义< 换行符>时(找到一个前面有< 反斜杠>) makefile中的任何位置,除了命令行,包含行或 紧接在包含线之前的一条线,它应被替换, 以及下一行中的任何前导空格,以及 单个< 空间>。当转义< 换行符>时在命令行中找到 在makefile中,命令行应包含< 反斜杠> ,. < 换行符>,以及下一行,除了第一个字符 如果是< 标签>,则不应包括下一行。当逃脱 < 换行>可以立即在包含行或行中找到 在包含行之前,行为未指定。
这是针对转义换行符所依赖的POSIX强制行为。