嵌入式驱动关于Makefile的编写例子
2015-12-13 23:34
330 查看
linux 驱动总结
linux驱动接口里的_init _exit 其实就是宏。
linux驱动程序不能用GCC直接编译生成模块。要用makefile
ifneq ($(KERNELRELEASE),)
obj-m := test.o
else
#KERNELDIR ?= /lib/modules/$(shell uname -r)/build
KERNELDIR := /home/twei/code/linux-2.6.35.3
PWD := $(shell pwd)
modules:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules
endif
clean:
rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c .tmp_versions *.order *.symvers
其中值得注意的是$(MAKE) -C $(KERNELDIR) M=$(PWD) modules和rm -rf *.o *~ core .depend .*.cmd
*.ko *.mod.c .tmp_versions *.order *.symvers这两句前面需要加入TAB键,因为它们是命令,具体详细解释请参考Makefile的详细教程,而KERNELDIR属于linux内核的编译路径,obj-m :=test.o属于需要编译的驱动模块,一般情况只需要简单的修改test.o的名字就能正常的编译。
linux驱动接口里的_init _exit 其实就是宏。
linux驱动程序不能用GCC直接编译生成模块。要用makefile
ifneq ($(KERNELRELEASE),)
obj-m := test.o
else
#KERNELDIR ?= /lib/modules/$(shell uname -r)/build
KERNELDIR := /home/twei/code/linux-2.6.35.3
PWD := $(shell pwd)
modules:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules
endif
clean:
rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c .tmp_versions *.order *.symvers
其中值得注意的是$(MAKE) -C $(KERNELDIR) M=$(PWD) modules和rm -rf *.o *~ core .depend .*.cmd
*.ko *.mod.c .tmp_versions *.order *.symvers这两句前面需要加入TAB键,因为它们是命令,具体详细解释请参考Makefile的详细教程,而KERNELDIR属于linux内核的编译路径,obj-m :=test.o属于需要编译的驱动模块,一般情况只需要简单的修改test.o的名字就能正常的编译。
相关文章推荐
- Soot源码分析
- 《VB语言程序设计(第3版)》总结
- lucene、lucene.NET详细使用与优化详解
- python字典序从大到小排列
- 欢迎使用CSDN-markdown编辑器
- 我只是一个普通人
- 【转】mapreduce运行机制
- Servlet之细节
- 高中信息技术《算法与程序设计VB(选修)》知识要点
- zookeeper集群的搭建
- 用Unity写一个12306验证器的恶搞图生成软件
- Seleium定位页面元素方法
- 利用MAT进行内存泄露分析
- bgycoding
- 50、BGP配置实验之社团属性community
- About素数
- About素数
- 2015第50周日
- Matrix.setRectToRect
- UIScrollView && UIPageControl