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: