1 ifneq ($(KERNELRELEASE),) 2 obj-m := hello.o 3 4 else 5 PWD := $(shell pwd) 6 KVER := $(shell uname -r) 7 KDIR := /lib/modules/$(KVER)/build 8 all: 9 $(MAKE) -C $(KDIR) M=$(PWD) modules 10 clean: 11 rm -rf .*.cmd *.o *.mod.c *.ko .tmp_versions 12 endif
对上面的代码进行make,结果出现这样:
出错点:
《1》也检查了是否是第9行和第11行前面必须是TAB而不是空格,我的也是TAB。
《2》最终找到了是gedit这个编辑器设置的原因:
gedit->Edit->Preferences->Editor里面设置出错:
这里面之前设置的Tab的长度是3,貌似这个也会有问题,改成4了。最最很重要的的是勾选了下面的 “Insert spaces instead of tabs”,这个不能勾选,选了它就用个=空格代替Tab了......
事实上最上面的代码前面还是空格,虽然你敲的是Tab。