makefile 文件介绍?

makefile 文件介绍?,第1张

makefile文件主要有以下五种组成部分。显式规则:显式规则说明了生成一个或多个目标文件的方法和步骤。这是在编写makefile文件时明显指出的,包括要生成的文件、生成文件的依赖文件以及生成的命令等。隐式规则:由于make工具有自动推导的功能,所以在编写makefile文件的时候可以利用该规则,简略地书写makefile。再由 make 工具本身自动推导需要使用的规则。变量的定义: make工具支持变量的定义,这些变量往往都是字符串,因此makefile中的变量更像是C语言中的宏。当makefile被执行时,其中的变量都会被展开到相应的引用位置上。

文件指示:其包括三个部分,一个是在一个makefile中引用另一个makefile,就像C语言中的include一样。另一个是指根据某些情况指定makefile中的有效部分,就像C语言中的预编译tlif一样。还有就是定义一个多行的命令。

注释: makefile 中支持行注释,这一点需要特别注意。makefile 中的注释和 shell脚本一样,其注释是用“#”字符。如果需要在 makefile中使用“#”字符,可以用‘\’对其进行转义。例如,“\#”表示一个‘#’字符。makefile文件的文件名最好命名为makefile或者Makefile。因为在默认的情况下,make命令会在当前目录下按顺序找寻这两个文件进行解释。用户也可以为makefile文件自定义一个文件名,例如,Make.makefile,Make.admin等。

linux下没有后缀名这么一说,makefile.linux就是一个文件名,之所以加。linux只是为了让用户能更好的区分而已,系统处理的时候是把makefile.linux整个给提取了的,这不像在windows下,一个执行文件的话必须是exe格式的,要执行的话只需要知道.exe之前是什么就可以了,linux下要执行的话必须输入整个文件名。

假设模块的源文件为hello.c,源码如下:

使用该文件编译内核模块。

正常情况下,Makefile文件内容如下:

执行 make 命令,生成hello.ko文件。

执行 sudo insmod hello.ko 命令,安装该模块。

执行 lsmod 命令,查看安装的模块。就会看到第一行的就是hello模块。

但是,如果想自定义模块名称为 xmodule ,而不是默认的 hello ,如何实现呢?方法如下:

在Makefile中重命名obj-m并将obj-m的依赖关系设置为原始模块(hello)

修改后的Makefile文件内容如下:

将obj-m设置为 xmodule .o,并使 xmodule .o依赖于 hello .o.

执行 make 命令后,生成 xmodule .ko, 而不是 hello .ko,

安装命令: sudo insmod xmodule.ko

查看命令: lsmod ,就会看到被安装名为 xmodule 的模块。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11693858.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存