一个简单的字符驱动程序的编译错误: make[1]: *** 没有规则可以创建目标“moudles”。 停止。 不能正常编

程序代码:
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/init.h>
#include <linux/config.h>

int init_module(void)
{
printk("Hello Linux!");
return 0;
}
void cleanup_moudle(void)
{
printk("Goodbye Linux!");
}
makefile:
obj-m:=hello.o
KDIR:=/lib/modules/$(shell uname -r)/build
SRCPWD:=$(shell pwd)
all:
make -C $(KDIR) M=$(SRCPWD) moudles
clean:
rm -rf hello.o

运行结果:
[root@localhost driver_test]# make
make -C /lib/modules/2.6.18-194.32.1.el5xen/build M=/root/Desktop/my_C/driver_test moudles
make[1]: Entering directory `/usr/src/kernels/2.6.18-194.32.1.el5-xen-i686'
make[1]: *** 没有规则可以创建目标“moudles”。 停止。
make[1]: Leaving directory `/usr/src/kernels/2.6.18-194.32.1.el5-xen-i686'
make: *** [all] 错误 2

第1个回答  2011-03-08
modules
不是
moudles

拼写错了
这个是调用内核的Makefile
所以你的Makefile里面不写modules是可以的
但是要跟内核Makefile里面写的一样才行
第2个回答  2011-02-23
makefile文件里没有描述出modules的依赖关系,所以编译器办法编译了。
第3个回答  2011-03-07
makefile里没有给出modules的关系,make无法完成后续指令了本回答被提问者采纳
第4个回答  2012-09-24
请问后来是怎么解决这个问题的?谢谢!我也遇到了这个问题不知道该怎么解决。
相似回答