我正在尝试首次编译一个简单的内核模块:
v-stepper
我用过#include <linux/module.h>
#include <linux/kernel.h>
int init_nodule(void)
{
printk(KERN_INFO "Hello world1.\n");
return 0;
}
void cleanup_module(void)
{
printk(KERN_INFO "Goodbye\n");
}
(这是模块的名称),但出现错误:
obj-m:找不到命令
为什么会这样?我尝试在网上寻找解决方案,但没有任何帮助。
编辑:根据@Mathieu答案修改后,出现以下错误:
obj-m += hello-1.o
答案 0 :(得分:2)
第obj-m += hello-1.o
行必须放在名为Makefile
的文件中
所以它看起来像:
obj-m += hello-1.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
要启动构建过程,只需从命令行执行make
。
更多资源:https://qnaplus.com/how-to-compile-linux-kernel-module/