在我们执行make时,有时候make会报以下错误:
makefile:4: *** missing separator. Stop
这种情况一般是Makefile中制表符Tab
的问题,删除有问题的行中的制表符Tab
重新输入即可。
Makefile中每个规则的所有操作都通过Tab
识别,并且不会将4个空格识别为制表符Tab
,只有制表符才识别为制表符。
为了识别文件中的制表符,可以使用以下指令:
cat -e -t -v makefile_name
这条指令用^I
表示制表符Tab
,用$
表示行结尾符号,这两个符号对于确保依赖关系正确结束是很重要的,以及Tab
标识规则的动作,这样我们就能很方便的识别出这些符号。
在VS Code中,只需要在你编辑Makefile的时候,点击右下角的Table Size:4
,选择Indent use tabs或者Convert Indentation to tabs就行了。