主题 : 还是hello.ko的编译 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 9038
精华: 0
发帖: 11
金钱: 55 两
威望: 11 点
综合积分: 22 分
注册时间: 2009-09-15
最后登录: 2011-08-26
楼主  发表于: 2011-08-12 16:56

 还是hello.ko的编译

我没有按mini6410的资料上提供的方式进行编译,感觉比较麻烦。我用如下指令编译的:make -C /usr/src/linux-2.6.38 M=$(pwd) module,也可以正常生成hello.ko文件,加载也没问题。linxu下的编程习惯都是编写makefile,所以我又重新整理了Makefile,如下:
KERNELDIR ?= /usr/src/linux-2.6.38
PWD := $(shell pwd)

obj-m := hello.o

module:
    $(MAKE) -C (KERNELDIR) M=$(PWD) modules

clean:
    rm -rf *.mod.* *.ko *.order *.symvers *.o
错误提示是:Makefile:11: *** 遗漏分隔符 。 停止。错误是最后一行。行头是tab,实在找不到其他原因。
如果把clean2行屏蔽,则提示没有什么可以做的为 `module'。
请高手给指点。谢谢。
级别: 新手上路
UID: 9038
精华: 0
发帖: 11
金钱: 55 两
威望: 11 点
综合积分: 22 分
注册时间: 2009-09-15
最后登录: 2011-08-26
1楼  发表于: 2011-08-13 09:48
今天周末了,自己顶一下。
级别: 新手上路
UID: 18883
精华: 0
发帖: 12
金钱: 60 两
威望: 12 点
综合积分: 24 分
注册时间: 2010-04-13
最后登录: 2012-05-15
2楼  发表于: 2011-08-15 10:20
$(MAKE) -C $(KERNEL_DIR) M=$(PWD) modules
你写的“(KERNEL_DIR)”前面少个“$”.
级别: 新手上路
UID: 9038
精华: 0
发帖: 11
金钱: 55 两
威望: 11 点
综合积分: 22 分
注册时间: 2009-09-15
最后登录: 2011-08-26
3楼  发表于: 2011-08-15 16:58
谢谢指点,可结果还是那样啊。
级别: 新手上路
UID: 9038
精华: 0
发帖: 11
金钱: 55 两
威望: 11 点
综合积分: 22 分
注册时间: 2009-09-15
最后登录: 2011-08-26
4楼  发表于: 2011-08-17 08:04
找到原因了,是文件属性的问题。