在Ubuntu上编写makefile文件,使用make命令进行编译,但是出现了makefile:2: *** missing separator. Stop.”这样的情况;
出现这种问题,根据错误提示,应该是makefile文件出现了问题,搜了一圈发现问题无非两种:
- makefile文件中命令行的行首不能有空格,而要用tab键;
- makefile文件中的字符有格式要求,必须是英文,不能有中文字符。
基于上述问题进行排查,修改完发现还是提示相同的missing separator. Stop错误。问题真正的根源在于我们敲入的tab键不是真正的tab键,而是被四个空格代替了。接下来需要修改vim的配置。
在终端输入
vim ~/.vimrc
可以看到我们的tab键确实被四个空格代替.
在 ~/.vimrc文件中set expandtab 下面添加下面的语句
autocmd FileType make set noexpandtab
添加之后 Esc,:wq保存退出;打开makefile文件,将之前的假<tab>删除,再次插入tab。保存退出。
此次执行makefile文件就不会报missing separator. Stop错误了。