您的位置:首页 > 其它

嵌入式驱动关于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的名字就能正常的编译。      
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: