尽管已安装,但找不到内核头文件

iam*_*aza 1 linux fedora linux-device-driver linux-kernel

我已经为 linux 内核编写了一个测试模块。这个模块需要头文件<linux/config.h>和<asm/system.h>. 当我发布时make,它给了我错误fatal error: linux/config.h: No such file or directory ,如果我评论config.h标题,它会 以同样的方式显示asm/system.h: No such file or directory。我尝试搜索问题并遇到了这些标题属于 tikernel-headers包的解决方案。我安装了这个包(虽然它已经安装在我的系统上)。但是后来找不到这两个标题。我找到了autoconf.h从/usr/src/路径软链接的解决方案,但不幸的是我找不到安装在此路径上的任何 headers 文件夹。谁能告诉我我的代码哪里有问题?我使用的是 F20 操作系统,内核版本是 3.12.9-301.fc20.x86_64。

Mal*_*ali 5

似乎您的 Makefile 不知道在哪里搜索内核头文件。您可以尝试使用此 Makefile 吗:只需键入make,它就会使用当前正在运行的内核的内核头文件进行构建。

# Run this Makefile as follows:
# (MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
#

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

obj-m := test.o

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

install:
$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules_install
depmod -a

clean:
rm -f *~
$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) clean
Run Code Online (Sandbox Code Playgroud)