出错:缺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