使用 mkfile 编译 linux 内核模块

compile linux kernel module with mkfile

谁能解释一下这段代码是如何编译的,什么是 "all" 和 "clean"?

obj-m += ss.o

所有: make -C /lib/modules/$(shell uname -r)/build M=$(PWD) 模块

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


"all" 和 "clean" 被理解为 make 命令。参见 https://www.gnu.org/software/make/manual/make.html

"default kernel module Makefile" 看起来像这样...

obj-m    := ss.o

KDIR    := /lib/modules/$(shell uname -r)/build
PWD    := $(shell pwd)

default:
    $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules

clean:
    rm -rf *.o *.ko *.mod.* *.symvers *.order

... 在那里你可以看到 default 被使用(而不是 all)...... 看看 clean 实际上在做什么。