当前位置:嗨网首页>书籍在线阅读

21-在内核源码树外构建驱动

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

8.5 在内核源码树外构建驱动

在内核源码树外构建设备驱动程序通常是很方便的。使用一个简单的makefile就可以轻松完成这项工作,内核源码树中有很多类似的makefile,仿照着写一个就行了。Linux内核源码树中的驱动程序makefile通常都很简单。在450多个驱动程序makefile中,有一半以上包含的内容不超过10行,而其中的5%甚至只包含一行!

如果想为hello1示例编写一个makefile,从而在内核源码树外构建它,看起来会像这样:

191.png 创建一个目录,并将源码文件hello1.c放在里面。接下来,在同一个目录中创建一个名为Makefile的新文件。这个Makefile应该包含前面所显示的那行内容。接着,在刚刚创建的目录中执行以下这条构建命令:

192.png 当然了,你会用自己的Linux源码树的路径替换<path/to/your/linux-2.6>。 make 命令在执行时会通过 -C 参数转到你的内核源码树中,并指示构建系统构建定义在目录SUBDIRS(也就是当前工作目录)中的目标。就是这么简单。

一旦理解了这些概念,你可以编写一个稍微智能一点儿的makefile。比如,如果你喜欢的话,它可以定义SUBDIRS和内核路径。在你的内核配置中, CONFIG_EXAMPLES 的值必须定义为 =m=y ,认识到这一点很重要。你可以在.config文件中对此做个检查。不出所料,如果 CONFIG_EXAMPLES 未定义, hello1.c 模块不会编译。