Ubuntu编写makefile文件编译时显示makefile:2: *** missing separator. Stop.”,修改tab键后仍报相同的错 Ubuntu编写makefile文件编译时显示makefile:2: *** missing separator. Stop.”,修改tab键后仍报相同的错

在Ubuntu上编写makefile文件,使用make命令进行编译,但是出现了makefile:2: *** missing separator. Stop.”这样的情况;

出现这种问题,根据错误提示,应该是makefile文件出现了问题,搜了一圈发现问题无非两种:

  • makefile文件中命令行的行首不能有空格,而要用tab键;
  • makefile文件中的字符有格式要求,必须是英文,不能有中文字符。 

基于上述问题进行排查,修改完发现还是提示相同的missing separator. Stop错误。问题真正的根源在于我们敲入的tab键不是真正的tab键,而是被四个空格代替了。接下来需要修改vim的配置。

在终端输入

vim ~/.vimrc

可以看到我们的tab键确实被四个空格代替.

Ubuntu编写makefile文件编译时显示makefile:2: *** missing separator. Stop.”,修改tab键后仍报相同的错
Ubuntu编写makefile文件编译时显示makefile:2: *** missing separator. Stop.”,修改tab键后仍报相同的错

在 ~/.vimrc文件中set expandtab 下面添加下面的语句

autocmd FileType make set noexpandtab

Ubuntu编写makefile文件编译时显示makefile:2: *** missing separator. Stop.”,修改tab键后仍报相同的错
Ubuntu编写makefile文件编译时显示makefile:2: *** missing separator. Stop.”,修改tab键后仍报相同的错

添加之后 Esc,:wq保存退出;打开makefile文件,将之前的假<tab>删除,再次插入tab。保存退出。

此次执行makefile文件就不会报missing separator. Stop错误了。