制作错误:缺少分隔符
这是一个在你的Makefile中出现的语法错误。如果没有看到文件本身或相关的部分,很难给出更具体的解释。
通常,出现这个错误的原因是在Makefile中缺少了分隔符。Makefile是一个用于构建和编译项目的文件,它使用特定的语法和规则来定义目标和依赖关系。
解决这个错误的方法是找到缺少分隔符的位置,并在适当的地方添加它。分隔符在Makefile中通常是一个制表符或者多个空格。它的作用是将目标、依赖关系和命令分隔开来,以确保Make工具能够正确地执行构建过程。
下面是一个示例的Makefile,其中缺少了分隔符的部分:
target: dependency1
command1
command2
在这个示例中,缺少了分隔符,导致了错误的发生。正确的Makefile应该是这样的:
target: dependency1
command1
command2
通过在目标和命令之间添加制表符或多个空格,我们解决了这个错误。现在,Make工具将能够正确地解析Makefile,并执行相应的构建指令。
总结起来,"Make error: missing separator"这个问题通常是由于Makefile中缺少了分隔符导致的。解决这个问题的方法是找到缺少分隔符的位置,并在适当的地方添加分隔符。这样,Make工具就能够正确地执行构建过程了。
在GNU make的在线手册中指出,出现(Make error: missing separator)错误的最常见原因是使用空格进行缩进,而make
需要使用制表符进行缩进。
正确的方法
target: \tcmd
其中\t
代表制表符(U+0009
)。
错误的方法
target: ....cmd
其中每个.
代表一个空格(U+0020
)。
你可以使用.RECIPEPREFIX来更改make使用的字符。参考链接:gnu.org/software/make/manual/html_node/…
为了确认,我自己遇到了这个问题。大多数编辑器/IDE都可以帮助发现这个问题。例如,在IDEA中,转到“View”菜单,选择“Active Editor”,然后选择“Show Whitespaces”。我简直不敢相信在2022年(检查笔记)还存在空格和制表符之间的问题。
我有一个包含换行符的字符串变量 - 并不是出于选择。通过execute_process
插入,通过使用OUTPUT_STRIP_TRAILING_WHITESPACE
来修复,因为输出是单行的。不过错误信息确实令人恼火。