Makefile:makeclean-为什么要混合隐式规则和常规规则:不推荐的语法警告?

Makefile:makeclean-为什么要混合隐式规则和常规规则:不推荐的语法警告?,makefile,Makefile,下一行$(MAKE)-C$(KDIR)M=$(PWD)clean 生成警告:Makefile:10:**隐式规则和常规规则混合:不推荐使用的语法 怎么了?以下是完整的听力: obj-m := chardev.o KDIR := /lib/modules/$(shell uname -r)/build PWD := $(shell pwd) default: $(MAKE) -C $(KDIR) M=$(PWD) modules gcc -o ioctl ioctl.c cle

下一行
$(MAKE)-C$(KDIR)M=$(PWD)clean

生成警告:
Makefile:10:**隐式规则和常规规则混合:不推荐使用的语法

怎么了?以下是完整的听力:

obj-m := chardev.o
KDIR := /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)

default:
    $(MAKE) -C $(KDIR) M=$(PWD) modules
    gcc -o ioctl ioctl.c

clean:
    $(MAKE) -C $(KDIR) M=$(PWD) clean

将解释错误消息。我猜它是从
$(KDIR)
读取的Makefile中读取的。你试过make-d吗?这是make 4.1和旧内核吗?@EtanReisner这是make 4.0和3.16kernel@e0k
$(KDIR)
只是var,不是吗?奇怪,但是我在
make-d
中找不到这样的错误,只有在执行通常的
make
时才发现。这条消息是警告还是错误?在Make4.0中,这应该是一个致命错误。在make 4.1中,它应该是一个警告。我以为内核正在被更改以修复此问题。。。但也许不是。请参阅以了解有关此问题的GNU make“bug”。