内核模块的Makefile

时间:2014-04-21 14:50:48

标签: linux-kernel makefile

您好我正在尝试编写一个'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'.

我做错了什么。

1 个答案:

答案 0 :(得分:0)

这里的问题似乎是由我的Vim配置引起的。当我使用TAB缩进makefile时,插入的是空格而不是TAB。一旦我使用不同的编辑器更正了这一点,所有文件都会存在。

PS:makefile也需要以大写M = Makefile

命名