出错:缺less分隔符
我遇到以下错误运行make
:
Makefile:168: *** missing separator. Stop.
这是什么原因造成的?
如在线手册中所述,导致该错误的最常见原因是,在make
期望的制表符时,行会用空格缩进。
正确
目标: \ TCMD
\ t是TAB
错误
目标: CMD
只是为了咧嘴笑,以防其他人遇到类似的错误:
我得到了臭名昭着的“失踪分隔符”错误,因为我已经调用了一个定义函数的规则
($eval $(call function,args))
而不是
$(eval $(call function,args))
即($eval $(call...
而不是$(eval $(call...
这是你的Makefile中的一个语法错误。 没有看到档案本身或其相关部分,很难具体说明。
对我来说,问题在于我在define ... endef
多行variables定义中embedded了一些行结束define ... endef
。 删除评论使问题消失。
我的错误是在一个多行扩展的variables声明行上。 “\”后面有个空格,表示无效的行继续。
MY_VAR = \ val1 \ <-- 0x20 there caused the error. val2
在我的情况下,下一个错误。 我试图在全局执行命令,即任何目标之外。
UPD。 为了全局运行命令,必须正确组build。 例如命令
ln -sf ../../user/curl/$SRC_NAME ./$SRC_NAME
会成为:
$(shell ln -sf ../../user/curl/$(SRC_NAME) ./$(SRC_NAME))
以下的Makefile代码工作:
obj-m = hello.o all: $(MAKE) -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules clean: $(MAKE) -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean