以下 Makefile 不起作用,我不确定发生了什么

以下 Makefile 不起作用,我不确定发生了什么
obj-m += task.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

Makefile:3:*** 缺少分隔符。停止。

答案1

检查条目前面是否有真正的制表符,例如

all:
    make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules

它必须是 \t,即制表符,而不仅仅是空格。

为了验证,您可以运行cat -T Makefile

$ cat -T Makefile 
all:
^Iecho "foo"
foo:
^Iecho "bar"

^I表示制表符。验证全部目标后面的行是制表符缩进的。

相关内容