问题描述
在执行Makefile时,有时候会出现missing separator的错误,通常的原因是tab格式导致的。
原因
makefile里只有命令所在的行才能且只能以TAB开头,make变量的定义、赋值,make内定函数如$(error “strings”)都不能以TAB开头,不然make会将其作为命令来处理!
格式检查
使用如下命令, tasbs 用“^I”显示,$是一行的结束。
cat -e -t -v makefile_name
结果:
SUBDIRS := centos$
$
all:$
^I@for d in $(SUBDIRS); do \$
$(MAKE) -C $$d all; \$
done$
$
clean:$
^I@for d in $(SUBDIRS); do \$
$(MAKE) -C $$d clean; \$
done$
$