Makefile 缺少分隔符错误,尽管使用了正确的缩进

Makefile missing separator error in spite of using the correct indentation

虽然我对这个错误做了一些研究,并了解到它与缩进有关。我仍然无法弄清楚导致终端出现错误的 Makefile 有什么问题:Makefile:2: *** missing separator. Stop. while 运行 make clean 命令。 我的 Makefile 包含以下内容:

obj-m := S3538332Device.o
KERNEL_DIR /usr/src/linux-headers-$(shell uname -r)
all:
    $(MAKE) -C $(KERNEL_DIR) SUBDIRS=$(PWD) modules
clean:
    rm -rf *.o *.ko *.mod.* *.symvers *.order *~

我尝试 运行 cat -e -t -v {Makefile} 以确保选项卡位于正确的位置:

obj-m := S3538332Device.o$
KERNEL_DIR /usr/src/linux-headers-$(shell uname -r)$
all:$
^I$(MAKE) -C $(KERNEL_DIR) SUBDIRS=$(PWD) modules$
clean:$
^Irm -rf *.o *.ko *.mod.* *.symvers *.order *~$

总的来说,我对 makefile 和 c 编程还很陌生,我找不到我的代码有什么问题。任何人都可以帮我找出导致错误的问题吗?

您缺少赋值运算符,它应该是

KERNEL_DIR = /usr/src/linux-headers-$(shell uname -r)

或通常 KERNEL_DIR 通常只有在尚未设置时才会设置:

KERNEL_DIR ?= /usr/src/linux-headers-$(shell uname -r)