我的makefile是

 obj - m+= jurgen.o
all:
        [Tab] -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
clean:
        [Tab] -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean

最佳答案

你的间隔看起来很奇怪。
1号线是

obj - m+= jurgen.o

我想
obj-m += jurgen.o

另外:
您可以简化文件的其余部分:
.PHONY:%
all: modules

build_dir = /lib/modules/$(shell uname -r)/build

%:
    $(MAKE) -C $(build_dir) M=$(PWD) $@

我已经减少了重复,并将构建目录放入一个可重写的变量中,这样您就可以为任何有头文件的内核编译,而不仅仅是当前运行的内核。我还添加了.PHONY以便名为allclean的文件不会妨碍make完成其工作。

关于linux - Makefile:1:***缺少分隔符。停止,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34072417/

10-14 07:43