#这种指定objs的写法,其中模块名与实际objs中的文件名不能相同,否则会出现编译时报循环依赖的警告
MODULE_NAME := mhello #模块名,最终编译得到mhello.ko
MODULE_OBJS := extern.o hello.o #依赖文件
$(MODULE_NAME)-objs := $(MODULE_OBJS)
ifneq ($(KERNELRELEASE),)
obj-m := $(MODULE_NAME).o
else
PWD :=$(shell pwd)
#交叉编译,指定内核目录,编译时make要带上ARCH与CROSS_COMPILE,如make ARCH=arm CROSS_COMPILE=arm-linux-
#KDIR := /home/linux-3.2.0-psp04.06.00.11-m3352
#编译主机模块
KDIR := /lib/modules/$(shell uname -r)/build
#KVER = 3.2.0 #这句不加也可以
all:
$(MAKE) -C $(KDIR) M=$(PWD) modules
clean:
rm -rf *.cmd *.o *.mod.c *.ko .tmp_versions modules.order Module.symvers
endif
linux内核模块之Makefile模板
最新推荐文章于 2024-03-03 21:50:36 发布