如何编译linux内核模块

时间:2012-01-30 11:12:51

标签: compiler-errors linux-kernel kernel-module

我无法编译linux内核模块,

鉴于以下来源:

/* hello.c */

#include <linux/module.h>
#include <linux/kernel.h>

int init_module(void)
{
printk(KERN_INFO "Hello world\n");
return 0;
}

void cleanup_module(void)
{
printk(KERN_INFO "Goodbye world\n");
}

/* end of hello.c */

和以下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

当我在与源和make文件相同的目录中输入make时,我收到消息:'没有什么可以为'所有'做 编译似乎停在此处,并且没有创建目标文件。

现在只是为了测试,我尝试了一个新的更简单的Makefile:     TARGET:=你好     $ {TARGET} .o:$ {TARGET} .c

运行make会给我一个新错误:hello.c:1:致命错误:linux / module.h:没有这样的文件或目录。

但是该文件在文件夹中可用:

/usr/src/linux-headers-2.6.35-22/include/linux 

以及

/usr/src/linux-headers-2.6.35-22-generic/include/linux

与kernel.h文件一样

我缺少什么,有什么想法吗?

提前致谢

1 个答案:

答案 0 :(得分:3)

您缺少行首和“make -C ...”之间的标签