我有这个测试文件
#include <linux/module.h>
#include <linux/kernel.h>
static int init_module(void){
printk(KERN_INFO "Hello world!\n");
return 0;
}
static void cleanup_module(void){
printk(KERN_INFO, "I wanna kill my self tbh\n");
}
module_init(init_module);
module_exit(cleanup_module);
和这个make文件
obj-m += test.o
all:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
clean:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean
我不太清楚这是什么意思但是我收到错误,说它在当前目录中找不到Makefile
,文件和文件夹与源文件一起留在当前目录中makefile,这些文件是.cache.mk
文件和.tmp_versions
文件夹。
我只是运行make
命令,这是我得到的输出:
make -C /lib/modules/4.15.8-1-ARCH/build M=/home/[user]/projects/c/test modules
make[1]: Entering directory '/usr/lib/modules/4.15.8-1-ARCH/build'
scripts/Makefile.build:45: /home/[user]/projects/c/test/Makefile: No such file or directory
make[2]: *** No rule to make target '/home/[user]/projects/c/test/Makefile'. Stop.
make[1]: *** [Makefile:1510: _module_/home/[user]/projects/c/test] Error 2
make[1]: Leaving directory '/usr/lib/modules/4.15.8-1-ARCH/build'
make: *** [makefile:4: all] Error 2