谁能解释一下这段代码是如何编译的以及什么是“全部”和“干净”?
obj-m += ss.o
全部: make -C/lib/modules/$(shell uname -r)/build M=$(PWD) 模块
干净: 使 -C/lib/modules/$(shell uname -r)/build M=$(PWD) clean
最佳答案
<小时/>
“all
”和“clean
”被理解为make
命令。请参阅https://www.gnu.org/software/make/manual/make.html
“默认内核模块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
实际在做什么。
关于linux - 使用mkfile编译linux内核模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33743838/