模块make clean方法后第二次编译提示找不到文件了.

内核编译和嵌入式产品的设计与开发
回复
boluor
帖子: 274
注册时间: 2007-10-14 0:11
送出感谢: 0
接收感谢: 0

模块make clean方法后第二次编译提示找不到文件了.

#1

帖子 boluor » 2009-03-11 10:41

我有个模块第一次编译成功了,并且加载也没错.不过insmod后提示是[permanent]。重启后发现他不在modules列表中,就想重新编译下。
第一次:
在编译的时候用的命令是:make -C /lib/modules/`uname -r`/build M=`pwd` modules
安装模块:make -C /lib/modules/`uname -r`/build M=`pwd` modules_install
加载模块时用:modprobe redirfs。但是这个没成功,用insmod搞定了。

然后模仿网上有个帖子clean了一下:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean

这个时候发现目录下的编译模块的文件并没有删除(或许删除了个别文件我没发现,但是大部分都还在)。删掉这个目录,又拿源文件就是没有编译过的,重新编译。但是却提示少了文件:

boluor@boluor-laptop:~/SoftWares/redirfs-0.6$ make -C /lib/modules/`uname -r`/build M=`pwd` modules
make:进入目录'/usr/src/linux-headers-2.6.27-11-generic'
CC [M] /home/boluor/SoftWares/redirfs-0.6/rfs_path.o
In file included from include/linux/gfp.h:4,
from include/linux/slab.h:12,
from include/linux/percpu.h:5,
from include/linux/rcupdate.h:39,
from include/linux/sem.h:81,
from include/linux/sched.h:69,
from /home/boluor/SoftWares/redirfs-0.6/rfs.h:29,
from /home/boluor/SoftWares/redirfs-0.6/rfs_path.c:24:
include/linux/mmzone.h:18:26: error: linux/bounds.h: 没有该文件或目录
include/linux/mmzone.h:197:5: warning: "MAX_NR_ZONES" is not defined
In file included from include/linux/gfp.h:4,
from include/linux/slab.h:12,
from include/linux/percpu.h:5,
from include/linux/rcupdate.h:39,
from include/linux/sem.h:81,
from include/linux/sched.h:69,
from /home/boluor/SoftWares/redirfs-0.6/rfs.h:29,
from /home/boluor/SoftWares/redirfs-0.6/rfs_path.c:24:
include/linux/mmzone.h:218: 错误: ‘MAX_NR_ZONES’未声明(不在函数内)
make[1]: *** [/home/boluor/SoftWares/redirfs-0.6/rfs_path.o] 错误 1
make: *** [_module_/home/boluor/SoftWares/redirfs-0.6] 错误 2

---------------------------------------

谁能告诉我是什么原因阿?难道那个clean方法把bounds.h给删掉了?
boluor
帖子: 274
注册时间: 2007-10-14 0:11
送出感谢: 0
接收感谢: 0

Re: 模块make clean方法后第二次编译提示找不到文件了.

#2

帖子 boluor » 2009-03-11 22:22

搞定了,去朋友机子上拷贝了bounds.h就搞定了。
头像
gemy
帖子: 17
注册时间: 2005-12-13 13:51
系统: Mac Mavericks/Ubuntu
来自: 成都理工大学
送出感谢: 0
接收感谢: 0
联系:

Re: 模块make clean方法后第二次编译提示找不到文件了.

#3

帖子 gemy » 2009-04-23 21:31

到/usr/src/linux下或你对应的内核版本的源码目录下执行 make prepare 就ok了
互相宽容的朋友一定百年同舟;
互相宽容的夫妻一定百年共枕;
互相宽容的世界一定和平美丽。

有心能知,有情能爱,有缘能聚,有梦能圆。
http://wuqiong.info
http://www.diveinedu.com

Lenovo F41AT2390 /Ubuntu 13.04
2G Mem + 160G HDD +Nvidia 8400GS + Broadcom BCM4312 wireless card
boluor
帖子: 274
注册时间: 2007-10-14 0:11
送出感谢: 0
接收感谢: 0

Re: 模块make clean方法后第二次编译提示找不到文件了.

#4

帖子 boluor » 2009-04-25 2:01

gemy 写了:到/usr/src/linux下或你对应的内核版本的源码目录下执行 make prepare 就ok了
thank you!
回复

回到 “内核及嵌入式开发”