我得到以下错误运行make:
Makefile:168: *** missing separator. Stop.
是什么导致了这种情况?
我得到以下错误运行make:
Makefile:168: *** missing separator. Stop.
是什么导致了这种情况?
当前回答
在我的例子中,这个错误是由于缺乏空间造成的。我在我的makefile中有这个if块:
if($(METHOD),opt)
CFLAGS=
endif
应该是:
if ($(METHOD),opt)
CFLAGS=
endif
if后面加一个空格。
其他回答
只是为了笑一笑,以防别人遇到类似的错误:
我得到了臭名昭著的“缺少分隔符”错误,因为我调用了将函数定义为的规则
($eval $(call function,args))
而不是
$(eval $(call function,args))
即($而不是$(。
正如在线手册中所指出的,该错误最常见的原因是当make期望制表符时,行被空格缩进。
正确的
target:
\tcmd
其中\t为TAB (U+0009)
错误的
target:
....cmd
每一个。表示空格(U+0020)。
这是Makefile中的语法错误。如果没有看到文件本身或其中的相关部分,就很难更具体。
因此,显然,我所需要的是“构建必要”包,然后首先运行autoconf,这使得Makefile.pre。In,然后是。/configure,然后是make。
以下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