当前位置:  技术问答>linux和unix

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

    来源: 互联网  发布时间:2016-05-23

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

我有个模块第一次编译成功了,并且加载也没错.不过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给删掉了?

|
1、insmod到內核里面的module,reboot以後是沒有的,除非你用直接或者間接的方法再insert進去

2、make clean通常的規則都是刪除目標文件可可執行程序,絕對不會刪源代碼

3、你為啥不寫個makefile來編譯module呢,我很是奇怪...

|
要去看看这个连接 /lib/modules/$(shell uname -r)/build  指向的目录有没有当前版本的源码源码

有内核源码,还要把内核源码make下

|
迷糊了 还是写个makefile 方便多了 

    
 
 

您可能感兴趣的文章:

  • *******是不是对内核模块编程然后再重新编译内核就可以把此模块整合到linux系统中
  • 驱动模块可以编入内核,想单独编译成模块,makefile怎么写?
  • 关于如何把编译进内核的编译成模块
  • 想问一下,编译LINUX内核时,是否可以只编译其中的一个模块?
  • [求教]内核加载模块后,这部分内容编译在内核里的吗?
  • 驱动模块编译调试问题、、????
  • 编译出来的内核模块怎么那么大
  • 如何查看编译进内核的模块
  • 编译模块的时候出现的问题
  • rndis驱动编译成内核模块
  • 将驱动模块编译进内核是否有用??
  • 如何编译内核源代码中的某一模块?
  • 编译模块的小问题
  • 为什么我编译的内核模块由300M这么大
  • 为什么apache编译后 ,没有rewrite模块?
  • apache模块静态编译问题
  • 模块编译问题!!!!!!!1
  • 模块编译问题?
  • BUS LOGIC是什么模块?编译内核在那里选?
  • 编译内核模块的问题....(急)
  • 想删除内核中的一个模块,输入命令后,系统提示该模块不存在。但是我lsmod时,它在/proc/modules中。求解。
  • 请教!出现这个提示是什么原因..是模块版本问题,还是其他问题..http://220.114.102.28/xitong/ProductShow.asp?ArticleID=82
  • redhat9。0下能检测到声卡但提示说模块禁止怎么处理!!
  • 我用gcc编了一个小内核模块,但是用insmod安装的时候提示内核版本不对,怎么办?
  • 我用的是atmel一个成熟的开发板。有一个触摸屏驱动程序,以<M>的方式编译为模块,编译时提示某个外部函数没有定义,但如果以<*>的方式编译进内核,则不会出错。请教下可能是什么原因?
  • 【求助】内核中使用EXPORT_SYMBOL,编译时调用模块提示undefined,请高手帮忙
  • 最简单的内核模块,加载时提示version mismatch
  • 初入内核模块编成,提示 Nothing to be done for `/home/yyy/aatacktool/aatacktool.c
  • Django1.3添加app提示模块不存在的解决方法
  • 使用hello-objs该项编译hello驱动模块,竟然会提示失败..
  • Python升级提示Tkinter模块找不到的解决方法
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Python异常模块traceback用法举例
  • Linux中一个模块中的函数如何被另一个模块调用?
  • Python的MySQLdb模块安装
  • insmod模块无显示,但rmmod模块有显示
  • 传感器模块、gprs模块如何和我的2440开发板相连
  • 大侠帮忙!模块调试(非内核模块)
  • 编译出来的内核模块怎么那么大 iis7站长之家
  • 自己写的内核模块与用户模块通信(交互)
  • 如何停止模块运行
  • 弱弱的问一个关于"模块化编程"的问题
  • 模块的安装求助
  • 模块依赖小问题,请各位大大帮忙
  • 关于rsync同步模块配置问题
  • 自定义内核模块禁止启动图形界面
  • 使用非root用户加载模块出错
  • 如何想向内核添家一个自定义的模块?
  • 关于LINUX内核模块的按需卸载及安装
  • 驱动模块断电重加载问题
  • linux内核模块间调用函数
  • 内核模块和设备驱动的区别?
  • linux怎样将网卡接收到的数据包交给不同模块处理


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3