编译内核模块 .ko文件的注意事项 缺少:mmzone.h bounds.h
2012-04-07 19:20
405 查看
前两天新到手一个6410的板子,按照说明在上面跑了一下android和QT,都成了。今天想试试helloworld模块的装载发现了一些需要注意的问题。
出现的问题:编译的时候提示缺少头文件 mmzone.h ....bounds.h...等
include/linux/mmzone.h:18:26: error: linux/bounds.h: No such file or directory
include/linux/mmzone.h:197:5: warning: "MAX_NR_ZONES" is not defined
原因:bounds.h是在编译内核时生成的,类似于编译产生的.o文件,如果你运行
"make clean" or "make distclean",这个文件就会被清除掉(详情查看内核Makefile)。因此,如果再利用此内核源码编译内核模块,如果有涉及bounds.h,就会出现找不到该文件的错误。
解决:独立内核目录之外编译模块时,要确保makefile文件中所定义的内核源代码树已经make过一遍,且没有make clean。这样就不会清除生成的bound.h头文件,这个文件是生成模块必须的。
或者"make prepare"
这样就会重新生成bounds.h,搞定了!再看看其内容:#ifndef __LINUX_BOUNDS_H__#define __LINUX_BOUNDS_H__/* * DO NOT MODIFY. * * This file was generated by Kbuild * */#define NR_PAGEFLAGS 19 /* __NR_PAGEFLAGS @ */#define MAX_NR_ZONES 3 /* __MAX_NR_ZONES @ */#endif
出现的问题:编译的时候提示缺少头文件 mmzone.h ....bounds.h...等
include/linux/mmzone.h:18:26: error: linux/bounds.h: No such file or directory
include/linux/mmzone.h:197:5: warning: "MAX_NR_ZONES" is not defined
原因:bounds.h是在编译内核时生成的,类似于编译产生的.o文件,如果你运行
"make clean" or "make distclean",这个文件就会被清除掉(详情查看内核Makefile)。因此,如果再利用此内核源码编译内核模块,如果有涉及bounds.h,就会出现找不到该文件的错误。
解决:独立内核目录之外编译模块时,要确保makefile文件中所定义的内核源代码树已经make过一遍,且没有make clean。这样就不会清除生成的bound.h头文件,这个文件是生成模块必须的。
或者"make prepare"
这样就会重新生成bounds.h,搞定了!再看看其内容:#ifndef __LINUX_BOUNDS_H__#define __LINUX_BOUNDS_H__/* * DO NOT MODIFY. * * This file was generated by Kbuild * */#define NR_PAGEFLAGS 19 /* __NR_PAGEFLAGS @ */#define MAX_NR_ZONES 3 /* __MAX_NR_ZONES @ */#endif
相关文章推荐
- 编译内核模块 .ko文件的注意事项 缺少:mmzone.h bounds.h
- 编译内核模块 .ko文件的注意事项 缺少:mmzone.h bounds.h
- 编译内核模块 .ko文件缺少:mmzone.h bounds.h
- 编译的时候提示缺少头文件 mmzone.h ....bounds.h
- 模块编译KO文件Makefile 2.6内核通用
- 编译e1000 缺少:mmzone.h bounds.h
- ubuntu11.10下为android模拟器编译内核到为android开发内核模块(.ko文件)全过程纪实
- ubuntu11.10下为android模拟器编译内核到为android开发内核模块(.ko文件)全过程纪实
- 编译多个文件到内核模块
- jenkins+maven 多模块编译注意事项
- 编译linux2.6.x内核步骤及注意事项
- Linux 驱动程序/内核模块/ko文件
- 如何编译内核中某一个ko模块(1)
- QT中PRO文件的简单说明(网络模块应用注意事项)
- python 删除某个路径下所有文件及模块调用注意事项
- Linux最小根文件系统的建立,内核模块的编译,Qemu模拟测试最小系统
- .ko内核模块文件以及载入模块命令modprobe insmod
- java文件编译成class文件的注意事项
- Windows下反编译(Decompile)CHM文件及注意事项
- CentOS 6 编译安装bind文件,注意事项