Missing separator
make 使用 tab 来进行缩进,用空格缩进则报错;如果是 tab ,会以 ^I 符号呈现,可以通过以下方式进行检查:
$ cat Makefile
.PHONY: print
print:
echo "test"
echo "test"
$ make print
Makefile:3: *** missing separator. Stop.
$ cat -e -t -v Makefile
.PHONY: print$
print:$
echo "test"$
^Iecho "test"$在 Makefile 中使用 $ 符号
在 Makefile 中,需要区分 $ 的使用,是为了引用变量例如 $variable ;还是需要使用 $ 传递给 shell 命令;因此如果单纯想要使用 $ ,就需要重复写两遍 $$ 进行转义:
# 无效用法:
.PHONY: replace
echo ' foo' | sed 's/foo$/bar/g'
# 正确用法:
.PHONY: replace
echo ' foo' | sed 's/foo$$ /bar/g'Refs: