编写好Makefile
后,运行make
,报错:
Makefile:4: *** missing separator. Stop.
网上搜索后都是说缺少了tab,但是检查Makefile
文件,其实并没有
见下面:
objs = tmp.o
tmp: $(objs)
gcc $(objs) -o tmp
后来发现第四行开头连按两下tab就不会报错
联想到之前为了把vim里的tab改成4个空格位,在~/.vimrc
使用了下面这个配置:
set shiftwidth=4
set softtabstop=4
后来才知道,这个softtabstop
是把tab换成4个空格,连续两个tab又会用真正的tab替换这8格
详细解释可以参考这里: vim技巧:详解tabstop、softtabstop、expandtab三个选项的区别
总之,为了不做替换,应该用tabstop
,也就是:
set shiftwidth=4
set tabstop=4
这样写Makefile
时用一个tab就不会报错了