将自定义库链接到Makefile中的Linux内核模块

时间:2014-09-15 21:12:27

标签: linux-kernel makefile kernel kernel-module

所以我试图重新考虑我之前编写的内核模块(通过将某些函数移除到不同的.h / .c文件中。这是我当前的Makefile:


EXTRA_CFLAGS += 
KERNEL_SRC:= /lib/modules/$(shell uname -r)/build
SUBDIR= $(PWD)
GCC:=gcc
RM:=rm

.PHONY : clean

all: clean modules

obj-m:= kernel_module.o

modules:
    $(MAKE) -C $(KERNEL_SRC) M=$(SUBDIR) modules

clean:
$(RM) -f *.ko *.o *.mod.c Module.symvers 

当我尝试制作时,我得到:错误:'ref_sleep'未声明(首次使用此功能)。 如何修改Makefile以确保我的库被编译,并且它正确地链接到我的内核模块?值得一提的是库需要在内核模块中定义的变量,反之亦然。

提前致谢。

1 个答案:

答案 0 :(得分:2)

如果我正确理解了这个问题,你想从几个源文件(例如,source1.c,source2.c,source3.c)构建你的内核模块(比如,my_module.ko)。如果是这样,您可以在Makefile中执行以下操作:

obj-m := my_module.o
my_module-y := source1.o source2.o source3.o
相关问题