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。