[英]Error compiling kernel module with two source files
我正在尝试编译具有两个.c文件的内核模块。 我的Makefile如下
module-y: dummy.o library.o
obj-m += module.o
default:
make -C /lib/modules/`uname -r`/build M=$(PWD) modules
当我运行这个我得到
cc -c -o dummy.o dummy.c
dummy.c:3:24: fatal error: linux/init.h: No such file or directory
似乎Makefile现在不知道在哪里可以找到标头。
我曾尝试使用CFLAGS添加include目录,但是其中有很多目录变得繁琐且难以执行(无法使其正常运行)。
我想使用包含目录(在魔术上使用单个.c文件时使用)来生成这两个.o文件。 在这种情况下,一切正常。
使用两个源文件时如何修复包含目录?
我像下面这样写了Makefile,它起作用了:
ifneq ($(KERNELRELEASE),)
# kbuild part of makefile
obj-m := module.o
module-y := library.o dummy.o
else
# normal makefile
KDIR ?= /lib/modules/`uname -r`/build
default:
$(MAKE) -C $(KDIR) M=$$PWD modules
endif
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.