那位高手帮我看看,我这个写的linux内核模快把

llhwjj 2011-04-14 05:37:35
希望哪位高手帮我看看我这个问题
/*file:helo.c*/
#ifndef __KERNEL__
#define __KERNEL__
#endif

#ifndef MODULE
#define MODULE
#endif

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

MODULE_LICENSE("MYGPL");

static int hello_init(void)
{
printk(KERN_ALERT "hello world\n");
return 0;
}

static void hello_exit(void)
{
printk(KERN_ALERT "HELLO WORLD EXIT\n");

}

module_init(hello_init);
module_exit(hello_exit);
这是我写的一个hello模块,但是在我编译的时候总是有错误,下面我也把我的makefile文件贴出来,希望高手帮我看看

ifneq ($(KERNELRELEASE),)
obj-m:= hello.o
else
KERNELDIR:=/lib/modules/$(shell uname -r)/build
PWD:=$(shell pwd)
default:
# $(MAKE) -C $(KERNELDIR) M=$(PWD) modules
# $(MAKE) -C $(KERNELDIR) M='pwd' modules
$(MAKE) -C $(KERNELDIR) M=$(PWD)modules
# make -C $(KERNELBUILD) SUBDIRS=$(shell pwd) modules
clean:
rm -rf *.o .*.cmd *.ko *.mod.c .tmp_versions
endif
这是我看到网上写的自己的makefile文件,但是现在编译出现的问题是如下,希望哪位高手能帮我看看,之前小弟没有接触过这个东西,现在需要用,所以比较急的错误如下
make -C /lib/modules/2.6.18-164.el5/build M=/home/liulonghui/modulemodules
make[1]: Entering directory `/usr/src/kernels/2.6.18-164.el5-x86_64'
scripts/Makefile.build:17: /home/liulonghui/modulemodules/Makefile: 没有那个件或目录
make[2]: *** 没有规则可以创建目标“/home/liulonghui/modulemodules/Makefile” 停止。
make[1]: *** [_module_/home/liulonghui/modulemodules] 错误 2
make[1]: Leaving directory `/usr/src/kernels/2.6.18-164.el5-x86_64'
make: *** [default] 错误 2
现在希望大家帮我分析分析,我的这个hello.c文件是放在自己建立的一个module下的。这一会真的需要帮助。
...全文
110 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
翔云123456 2011-04-23
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 kkkwdb 的回复:]
make -C /lib/modules/2.6.18-164.el5/build M=/home/liulonghui/modulemodules这条命令也错了,
改为
make -C /lib/modules/2.6.18-164.el5/build M=/home/liulonghui/modulemodules modules
[/Quote]
++1
zaghost 2011-04-23
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 lanyang123456 的回复:]
引用 2 楼 kkkwdb 的回复:
make -C /lib/modules/2.6.18-164.el5/build M=/home/liulonghui/modulemodules这条命令也错了,
改为
make -C /lib/modules/2.6.18-164.el5/build M=/home/liulonghui/modulemodules modules

++1
[/Quote]
应该是make -C /lib/modules/2.6.18-164.el5/build M=/home/liulonghui/module modules吧
xieyunfan 2011-04-23
  • 打赏
  • 举报
回复
可以这样试试
jerryline 2011-04-15
  • 打赏
  • 举报
回复
如三楼所说,$(PWD)modules
$(PWD)和modules中间少了一个空格。
李迟 2011-04-14
  • 打赏
  • 举报
回复
$(MAKE) -C $(KERNELDIR) M=$(PWD)modules
-->
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules
kkkwdb 2011-04-14
  • 打赏
  • 举报
回复
make -C /lib/modules/2.6.18-164.el5/build M=/home/liulonghui/modulemodules这条命令也错了,
改为
make -C /lib/modules/2.6.18-164.el5/build M=/home/liulonghui/modulemodules modules
kkkwdb 2011-04-14
  • 打赏
  • 举报
回复
这是说没有/home/liulonghui/modulemodules/Makefile文件,你检查这个路径对不对

4,436

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧