LDD 模块编译出错

VC_Derry 2011-08-04 03:31:30
模块代码:

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

MODULE_LICENSE("Dual BSD/GPL");

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

static void hello_exit(void)
{
printk(KERN_ALERT "Goodbye, crual world\n");
}

module_init(hello_init);
module_exit(hello_exit);

Makefile:

obj-m := Hello.o
KERNELDIR := /lib/modules/2.6.32.43/build
PWD := $(shell pwd)

modules:
$(MAKE) -C $(KERNELDIR) m = &(PWD)modules

modules_install:
&(MAKE) -C $(KERNELDIR) M = $(PWD)modules_install

出错信息:
make -C /lib/modules/2.6.32.43/build m = &(PWD)modules
/bin/sh: Syntax error: word unexpected
make: *** [modules] Error 2

Ps:看书的时候,说需要配置源码树,我就从网上下了一个2.6.32.43内核源码包,并按照make->make modules_install->make install 在 /opt/kernel/ 下面顺序安装了内核... 然后编译模块的时候出错,请高手指教问题出在哪里?谢谢!

...全文
175 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
VC_Derry 2011-08-04
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 lifc0 的回复:]

这个Makefile很多问题,空格、缩进,&号(应该是$)……,是粘贴上来还是敲键盘时打错了?
[/Quote]
是自己敲上去的 但是 由于刚开始学 对Makefile还不是很了解 所以参照网上的Makefile敲上去的 缩进Tab应该没问题 &已经改过了 但是 空格 不知道会不会有影响... 因为是急着学习内核驱动 所以 希望理解!
VC_Derry 2011-08-04
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 subfate 的回复:]

modules:
$(MAKE) -C $(KERNELDIR) m = &(PWD)modules

-->
modules:
$(MAKE) -C $(KERNELDIR) m = $(PWD) modules
[/Quote]

恩 这个是粗心所致 不好意思 但是 在我改为$之后 还是出现错误:
make -C /lib/modules/2.6.32.43/build m = /home/derry/LDD modules
make: *** empty variable name. Stop.
make: *** [modules] Error 2
我在网上查了下 说是可能是因为内核没安装成功 应该在/lib/modules/2.6.32.43/build 里面检查 但是 不知道该如何检查到底有没有安装内核成功 以及出现这个错误是不是跟内核是否安装成功有关?非常感谢!
lifc0 2011-08-04
  • 打赏
  • 举报
回复
这个Makefile很多问题,空格、缩进,&号(应该是$)……,是粘贴上来还是敲键盘时打错了?
李迟 2011-08-04
  • 打赏
  • 举报
回复
modules:
$(MAKE) -C $(KERNELDIR) m = &(PWD)modules

-->
modules:
$(MAKE) -C $(KERNELDIR) m = $(PWD) modules

4,441

社区成员

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

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