当前位置: 首页 > article >正文

驱动开发系列21 - 编译内核模块的Makefile解释

一:内核模块Makefile

#这一行定义了要编译的内核模块目标文件。obj-m表示目标模块对象文件(.o文件),
#并指定了两个模块源文件:helloworld-params.c 和 helloworld.c。最终会生成这
#这两个.c文件的.o对象文件。
obj-m := helloworld-params.o helloworld.o

#这行定义了内核源代码构建环境的路径,KERNELDIR变量指向当前系统内核模块构建目录,
#?= 表示如果 KERNELDIR 没有被定义,则使用后面的默认值。
KERNELDIR ?= /lib/modules/$(shell uname -r)/build

#这是一个目标定义,all 和 default 是 moudule 目标的别名,也就是在允许 make 或 
#make all 或 make default 时,会编译的模块。 
all default: modules

#这个目标表示在运行 make install 时,会调用 modules_install 目标, 用于安装编译好的
#内核模块
install: modules_install

#这一行定义了多个目标,它们分别是 modules,modules_install, help, clean, 这些目标都是由 
#$(MAKE) 命令来驱动。
modules modules_install help clean:
	$(MAKE) -C $(KERNELDIR) M&

http://www.kler.cn/news/356611.html

相关文章:

  • Qt键盘按下事件和定时器事件及事件的接收和忽略
  • Javaweb基础-axios
  • ElasticSearch+Kibana 8.1.0安装部署
  • 今日总结10.18
  • 反向传播和优化 pytorch
  • 为什么在 Vue 中处理 Excel 文件
  • MySQL 数据的持久化
  • 进入 Searing-66 火焰星球:第一周游戏指南
  • 昇腾CANN 8.0正式发布,多项核心技术引领大模型原生创新
  • chrome清除https状态
  • 简单谈谈mysql中的日志 undo log
  • 【原创】java+springboot+mysql在线课程学习网设计与实现
  • Python ORM:让数据库操作变得优雅
  • C++:stl_stackqueue模拟实现
  • redhat系列的yum源配置
  • 2.1.ReactOS系统中中断描述符表进行初始化
  • 执行php artisan storage:link报错
  • 3DsMax删除FBX 导出的预设
  • android openGL ES详解——混合
  • 用SpringBoot给Servlet容器Tomcat打war包步骤