所以我有一个典型的hello world内核模块和相应的Makefile放在root下,当我尝试通过输入make编译时,我得到以下错误:
scripts / Makefile.build:128:kbuild:Makefile.build包含不正确
但是,如果我在home子目录下执行,则everythig编译就好了。
以下是hello.c的内容:
#include <linux/init.h>
#include <linux/module.h>
#include <linux/kernel.h>
static int __init hello_init(void)
{
printk(KERN_ALERT "Hello world\n");
return 0;
}
static void __exit hello_exit(void)
{
printk(KERN_ALERT "Goodbye\n");
}
module_init(hello_init);
module_exit(hello_exit);
MODULE_LICENSE("Dual BSD/GPL");
和Makefile:
obj-m += hello.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
有人可以解释这种行为的原因吗?