解决 Makefile:13: *** missing separator. Stop

编写 Makefile 时,错误的空格和缩进会导致执行 make 命令失败:报错 Makefile:13: *** missing separator. Stop.

发布于  星期三,三月 27 2024

问题

Makefile 编写完后,执行 make 命令报错 Makefile:13: *** missing separator. Stop.

排查

直接问 Chat GPT:

🤡:遇到 Makefile:13: *** missing separator. Stop.应该怎么解决

🤖:

这个错误通常是由于 Makefile 文件中的第 13 行缺少了一个分隔符(通常是空格或制表符)导致的。Makefile 文件是一个用于描述项目构建过程的文件,它使用特定的语法和格式来指定目标、依赖关系和构建规则。

要解决这个错误,你可以按照以下步骤进行检查和修复:

  1. 打开 Makefile 文件,找到第 13 行。
  2. 检查第 13 行的代码,确保目标、依赖项或命令之间有正确的分隔符。通常,分隔符可以是空格或制表符。
  3. 如果缺少分隔符,在适当的位置插入一个空格或制表符,以满足 Makefile 的语法要求。
  4. 保存 Makefile 文件,并重新运行 make 命令。

通过以上步骤,应该能够解决 "Makefile:13: *** missing separator. Stop." 的错误。如果问题仍然存在,可能需要进一步检查 Makefile 文件的其他部分,确保语法和格式的正确性。

解决

通过 Chat GPT 的回答我们可以知道,大概率是因为空格或者缩进的问题,导致解析 Makefile 失败。那我们规范一下 Makefile 中的空格或者缩进,可以使用 .editorconfig(VS Code 需要安装 EditorConfig for VS Code 插件才能支持 .editorconfig),配置 [Makefile] 来统一

eg:缩进必须使用tab且大小必须为4个空格

# EditorConfig is awesome: https://EditorConfig.org

# top-most EditorConfig file
root = true

[*]
indent_style = space
indent_size = 2
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = false
insert_final_newline = false

# Makefile 里面缩进必须使用tab且大小必须为4个空格 
[Makefile]
indent_style = tab
indent_size = 4
  • Makefile