概述
使用时请注意如下两点:
- 此文件须放置到 驱动模块的源代码顶级目录下面
- 在注释行
#WHAT_YOU_NEED_TO_CHANGED
下面将MOD_NAME
和MOD_SRCS
的取值根据实际情况进行修改- 此模板文件支持 使用【aarch64-linux-gnu-】交叉编译工具链 进行交叉编译到ARM64平台上,具体用法见
make help
输出
KVERS := $(shell uname -r)
#若定义了HC_KSD变量, 则以HC_KSD的取值替换默认的linux内核代码路径(/lib/modules/$(KVERS)/build)
KSRCDIR = /lib/modules/$(KVERS)/build
ifdef HC_KSD
KSRCDIR := $(HC_KSD)
endif
MAKE = make #代码默认不进行交叉编译
#若定义了HC_CTP变量, 则使用【aarch64-linux-gnu-】交叉编译工具链交叉编译到arm64上
ifdef HC_CTP
MAKE := make CROSS_COMPILE=aarch64-linux-gnu- ARCH=arm64
endif
# WHAT_YOU_NEED_TO_CHANGED
#指定驱动模块的名字,注意:驱动模块的名字千万不能和本文件夹内的任何源文件同名!
MOD_NAME := hello
#指定驱动模块的所有依赖源文件
MOD_SRCS := hc_hello.c
#最终由XXX-objs链接生成$(MOD_NAME).o ,再生成$(MOD_NAME).ko
$(MOD_NAME)-objs := $(MOD_SRCS:.c=.o)
obj-m += $(MOD_NAME).o
# 模块编译额外FLAG, 放开后将以【完全不优化】模式编译模块
# EXTRA_CFLAGS = -g -O0
build: modules
modules clean:
$(MAKE) -C $(KSRCDIR) M=$(CURDIR) $@
help:
@echo -e 'n[HC_KSD=/path/to/kernel/srcdir] [HC_CTP=1] make [{build|clean}]n'
最后
以上就是傻傻夏天为你收集整理的【Linux内核】Linux内核模块编译时使用的Makefile文件模板的全部内容,希望文章能够帮你解决【Linux内核】Linux内核模块编译时使用的Makefile文件模板所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复