makefile:缺少分隔符

时间:2010-07-23 03:05:54

标签: linux makefile

#kernel build system and can use its lanauge
ifneq($(KERNELRELEASE),)
 obj-m:=helloworld.o
else
 KDIR:= /lib/modules/2.6.33.3-85.fc13.i686/build
all:
 make -C $(KDIR) M=$(PWD) modules
clean:
 rm -f *.ko *.o *.mod.o *.mod.c *.symvers
endif

错误是:

  

makefile:2:***缺少分隔符。停止

但是对于ifneq($(KERNELRELEASE),),如果我之前添加了标签,则会出现另一个错误:

  

makefile:2:***命令在第一个目标之前开始。停止

4 个答案:

答案 0 :(得分:21)

ifneq(之间必须有空格。

TAB前缀表示它是一个shell命令,因此请确保shell命令(makerm)以TAB开头,而所有其他行(例如ifneq不是从TAB开始。

答案 1 :(得分:1)

Make抱怨第二行不以标签开头。您的IDE / texteditor可能使用空格保存文件,等同于制表符。将IDE配置为使用制表符,或使用vim或nano等简单编辑器,并使用制表符替换第二行的前导空格。

答案 2 :(得分:0)

obj-m:KDIR:之前检查等。您的标签是否作为空格插入?

答案 3 :(得分:0)

你错过了条件ifneq的第二部分($(KERNELRELEASE),)需要在逗号之后有一些东西,比如“2.6.17”(例如)。