只是为了扩展一些例子,这是问题所在: 鉴于以下来源:
/* 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文件一样
我缺少什么,有什么想法吗?
提前致谢
答案 0 :(得分:1)
确保Makefile中以'make'开头的行由制表符缩进。 这是'all:'下面的行,'clean:'下面的行应该以tab开头。