最近转换到Arch系上做内核开发,发现编译的时候找不到对应的build目录,后面发现是运行的内核版本和安装的头文件版本没有匹配, 重新安装内核头文件匹配运行内核版本即可。
用以下Makefile为例:
obj-m := hello.o
KDIR := /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)
all:
make -C $(KDIR) M=$(PWD) modules
clean:
make -C $(KDIR) M=$(PWD) clean
make之后没有build路径
pacman -Q linux-headers # 查看安装的内核头文件版本号
uname -r # 查看当前运行的内核版本号
查看之后发现:
uname -r :6.13.9-1-MANJARO
pacman -Q linux-headers:linux510-headers 5.10.235-1
于是将Linux-headers更新到对应的版本号,通过pacman卸载头文件,然后pacman安装指定版本头文件。
重新make,问题解决。