您好我正在尝试编写一个'Hello World'内核模块。 我写了以下C代码: Module514.c
#include<linux/module.h>
#include<linux/kernel.h>
#include<linux/init.h>
MODULE_LICENSE("GPL");
MODULE_AUTHOR("BMC")
MODULE_DESCRIPTION(" My module]")
static int __init module514(void){
printk(KERN_INFO"Hello World");
return 0;
}
static void __exit module514_cleanup(void){
printk(KERN_INFO"unloaded")
}
module_init(module514);
module_exit(module514_cleanup);
然后创建以下Makefile
obj-m += Module514.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: Nothing to be done for `all'.
我做错了什么。
答案 0 :(得分:0)
这里的问题似乎是由我的Vim配置引起的。当我使用TAB缩进makefile时,插入的是空格而不是TAB。一旦我使用不同的编辑器更正了这一点,所有文件都会存在。
PS:makefile也需要以大写M = Makefile
命名