Makefile:1: *** 缺少分隔符。 (我使用制表符,而不是空格)
Makefile:1: *** missing separator. (I use tab, not spaces)
我知道这个问题已经被问过很多次了,但我还是无法解决我的错误。
我正在制作一个包含以下内容的 Makefile:
if [ -d "$HOME/.local/share/nvim/site/autoload/" ]; then
mkdir -p $HOME/.local/share/nvim/site/autoload/
fi
当我运行它时,我得到
Makefile:1: *** missing separator. Stop.
为了检查脚本是否有空格而不是制表符,我在提示符下输入
cat -t Makefile
所以我得到
if [ -d "$HOME/.local/share/nvim/site/autoload/" ]; then
^Imkdir -p $HOME/.local/share/nvim/site/autoload/
fi
有什么问题?
GNU make
不是 bash
,它有自己的语法。您的代码将是这样的:
ifeq ($(wildcard $(HOME)/.local/share/nvim/site/autoload/),)
MKDIR_OUTPUT:=$(shell mkdir -p $(HOME)/.local/share/nvim/site/autoload/)
endif
这里不需要标签,因为它不是食谱。
我知道这个问题已经被问过很多次了,但我还是无法解决我的错误。
我正在制作一个包含以下内容的 Makefile:
if [ -d "$HOME/.local/share/nvim/site/autoload/" ]; then
mkdir -p $HOME/.local/share/nvim/site/autoload/
fi
当我运行它时,我得到
Makefile:1: *** missing separator. Stop.
为了检查脚本是否有空格而不是制表符,我在提示符下输入
cat -t Makefile
所以我得到
if [ -d "$HOME/.local/share/nvim/site/autoload/" ]; then
^Imkdir -p $HOME/.local/share/nvim/site/autoload/
fi
有什么问题?
GNU make
不是 bash
,它有自己的语法。您的代码将是这样的:
ifeq ($(wildcard $(HOME)/.local/share/nvim/site/autoload/),)
MKDIR_OUTPUT:=$(shell mkdir -p $(HOME)/.local/share/nvim/site/autoload/)
endif
这里不需要标签,因为它不是食谱。