驱动程序Makefile 的解释
2016-07-27 13:17
211 查看
在任意一个目录下编写驱动程序,然后把此驱动程序编译为指定内核的模块,那么就要为此驱动程序写Makefile文件,假设驱动程序为:helloworld.c.此时编写Makefile文件。
/Makefile/
KERNAL ?=/home/forlinx/work/linux-3.2.0/
//KERNAL是定义的一个变量,来指定我们要驱动程序要运行内核的源码的路径,“?=”表示如果这个变量没有被赋值
就把后面的变量赋给它。/home/forlinx/work/linux-3.2.0/ 表示内核源码的路径
obj-m +=helloworld.o
// 把helloworld.c编译为内核模块
default:
make -C $(KERNAL) M=$(PWD) modules //make -C 是改变当前目录进入到变量KERNAL所指定的目录,M=$(PATH) 回到当前 目录下,执行当前
Makefile modules是编译为模块
clean:
@rm -f *.o *.order.o *.ko *.order *.mod* //删除文件,@德作用是去掉删除时在屏幕上的显示的打印信息;-f 表示强制删除,忽略
不存在的文件,从不给出提示。
补充:
http://tscsh.blog.163.com/blog/static/2003201032013151544087/(参数的意义) http://www.cnblogs.com/wanqieddy/archive/2011/09/21/2184257.html(=,?=,:=,+=的意义)
/Makefile/
KERNAL ?=/home/forlinx/work/linux-3.2.0/
//KERNAL是定义的一个变量,来指定我们要驱动程序要运行内核的源码的路径,“?=”表示如果这个变量没有被赋值
就把后面的变量赋给它。/home/forlinx/work/linux-3.2.0/ 表示内核源码的路径
obj-m +=helloworld.o
// 把helloworld.c编译为内核模块
default:
make -C $(KERNAL) M=$(PWD) modules //make -C 是改变当前目录进入到变量KERNAL所指定的目录,M=$(PATH) 回到当前 目录下,执行当前
Makefile modules是编译为模块
clean:
@rm -f *.o *.order.o *.ko *.order *.mod* //删除文件,@德作用是去掉删除时在屏幕上的显示的打印信息;-f 表示强制删除,忽略
不存在的文件,从不给出提示。
补充:
http://tscsh.blog.163.com/blog/static/2003201032013151544087/(参数的意义) http://www.cnblogs.com/wanqieddy/archive/2011/09/21/2184257.html(=,?=,:=,+=的意义)
相关文章推荐
- HDU 5762 Teacher Bo (水题)
- 从commit一步步带你走向fragment的生命周期
- 传统线程互斥技术初步-synchronized常用的几个锁对象
- 基于多尺度对比度x射线图像增强算法2
- 用例
- 开源集锦(八)GitHub开源控件(四)
- 2004 成绩转换
- 关于Android Studio 的 git的使用
- Android 仿当乐游戏详情页面(三)
- 字符串中封装好的函数
- poj_2778_DNA Sequence(AC自动机+矩阵)
- POJ 1221 整数分解 DP
- Android 适配
- 冒泡排序
- 历史sql plan
- python 多版本管理pyenv和virtualenv虚拟开发环境
- C/C++ 八大排序算法
- Lync客户端查聊天记录无法在Outlook中查看
- python2.7安装requests包
- Canvas 与 双缓冲 相关文章