【发布时间】:2021-06-02 08:27:29
【问题描述】:
我目前正在尝试在 linux 上编写基本内核模块。我可以在终端上编译源代码而没有任何错误
~/Desktop/kernelDriver$ make
make -C /lib/modules/5.8.0-7642-generic/build M=/home/cryonayes/Desktop/kernelDriver modules
make[1]: Entering directory '/usr/src/linux-headers-5.8.0-7642-generic'
CC [M] /home/cryonayes/Desktop/kernelDriver/basicModule.o
MODPOST /home/cryonayes/Desktop/kernelDriver/Module.symvers
CC [M] /home/cryonayes/Desktop/kernelDriver/basicModule.mod.o
LD [M] /home/cryonayes/Desktop/kernelDriver/basicModule.ko
make[1]: Leaving directory '/usr/src/linux-headers-5.8.0-7642-generic'
但是当我尝试在 Emacs 上使用相同的文件进行编译时,我得到了这个错误
-*- mode: compilation; default-directory: "~/Desktop/kernelDriver/" -*-
Compilation started at Wed Mar 3 20:42:07
make
make -C /lib/modules/5.8.0-7642-generic/build M=/home/cryonayes/Desktop/kernelDriver modules
make[1]: *** /lib/modules/5.8.0-7642-generic/build: No such file or directory. Stop.
make: *** [Makefile:7: all] Error 2
Compilation exited abnormally with code 2 at Wed Mar 3 20:42:07
它说没有这样的文件或目录。但它确实存在。
这是我的 Makefile 的内容
obj-m += basicModule.o
KERNEL_DIR ?= /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)
all:
$(MAKE) -C $(KERNEL_DIR) M=$(PWD) modules
clean:
$(MAKE) -C $(KERNEL_DIR) M=$(PWD) clean
是什么导致了这个错误?
【问题讨论】:
标签: c linux makefile emacs linux-device-driver