Tom*_*mir 2 c linux makefile linux-kernel
我正在尝试编译我的内核模块..c文件名是file1.c,但我需要.ko文件名mod1.ko.
我怎样才能做到这一点?
我目前的makefile:
obj-m := mod1.o
KDIR :=/lib/modules/$(shell uname -r)/build
PDW := $(shell pwd)
all:
$(MAKE) -C $(KDIR) M=$(PDW) modules
clean:
$(MAKE) -C $(KDIR) M=$(PDW) clean
Run Code Online (Sandbox Code Playgroud)
您应该将第一行更改为以下内容:
obj-m += module_name.o
module_name-y := file1.o
Run Code Online (Sandbox Code Playgroud)
module_name模块文件名在哪里(在这个例子中输出将是module_name.ko),它将从中构建file1.c.您可以将多个源文件添加到第二行,因此它可以是:
module_name-y := file1.o file2.o file3.o
Run Code Online (Sandbox Code Playgroud)
在这种情况下module_name.ko将构建file1.c,file2.c和file3.c.
如果要完全了解Linux内核makefile,则应阅读本文档.您的问题在第190行附近描述.