博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Makefile文件的编写
阅读量:4094 次
发布时间:2019-05-25

本文共 906 字,大约阅读时间需要 3 分钟。

我的linux是centos 6.7 64位。

Makefile 文件是用来对内核模块进行编译的。具体的写法如下:

obj-m  :=  [模块名].oCURRENT_PATH  :=  $(shell  pwd) //指定当前路径LINUX_KERNELS_PATH  :=  /usr/src/kernels/$(uname -r) //说明所使用的内核版本all:	make  -C  $(LINUX_KERNELS_PATH)  M=$(CURRENT_PATH)  modulesclean:	 make  -C  $(LINUX_KERNELS_PATH)  M=$(CURRENT_PATH)  clean

模块名可以和自己的.c文件名一样。上边的 obj-m 写法只是需要一个.o文件。多个的话是:

obj-m  :=  modules.omodules.o  :=   [模块1].o    [模块2].o     ……modules可以更改,注意,obj和-m之间没有空格。

接下来的两行是shell命令,用来给CURRENT_PATH和LINUX_KERNELS_PATH这两个变量赋值。内核版本的路径请查看自己的路径,这是我的路径,版本不同,保存的路径也不一样。

下来就是编译模块和清除模块。注意,make前边需要按TAB键,如果没有,则编译不通过。
拿书上的例子,插入和清楚模块,请以root权限运行。如果要看结果,也在root权限下操作。命令为:(sudo) tail (-n 20) /var/log/messages。加20,是因为tail默认最后10行,但是插入模块显示的东西有20行。
sudo出错的需要配置sudoers文件,所以直接用root运行就可以了。
编译出错
这是编译出错的显示,错误会有说明。
编译通过
这是编译成功的显示。
写脚本的时候一定要注意格式,脚本虽然很方便,但是格式比较奇怪。自己在一开始写完了脚本,但是编译不出来任何结果,查找后发现是make前没有加TAB键。在编译,有结果但出现错误,是.c文件错误,误按了一个字母。修改完后,编译成功。这是我自己的的编写和编译过程。

转载地址:http://lpxii.baihongyu.com/

你可能感兴趣的文章
卧槽!小姐姐用动画图解 Git 命令,这也太秀了吧?!
查看>>
厉害了!Python 编辑器界的神器 Jupyter ,推出官方可视化 Debug 工具!
查看>>
卧槽!Java 虚拟机竟然还有这些性能调优技巧...
查看>>
听说玩这些游戏能提升编程能力?
查看>>
7 年工作经验,面试官竟然还让我写算法题???
查看>>
被 Zoom 逼疯的歪果仁,造出了视频会议机器人,同事已笑疯丨开源
查看>>
上古语言从入门到精通:COBOL 教程登上 GitHub 热榜
查看>>
再见,Eclipse...
查看>>
超全汇总!B 站上有哪些值得学习的 AI 课程...
查看>>
如果你还不了解 RTC,那我强烈建议你看看这个!
查看>>
神器面世:让你快速在 iOS 设备上安装 Windows、Linux 等操作系统!
查看>>
沙雕程序员在无聊的时候,都搞出了哪些好玩的小玩意...
查看>>
太赞了!GitHub 标星 2.4k+,《可解释机器学习》中文版正式开放!
查看>>
程序员用 AI 修复百年前的老北京视频后,火了!
查看>>
漫话:为什么你下载小电影的时候进度总是卡在 99% 就不动了?
查看>>
我去!原来大神都是这样玩转「多线程与高并发」的...
查看>>
当你无聊时,可以玩玩 GitHub 上这个开源项目...
查看>>
B 站爆红的数学视频,竟是用这个 Python 开源项目做的!
查看>>
安利 10 个让你爽到爆的 IDEA 必备插件!
查看>>
自学编程的八大误区!克服它!
查看>>