Linux自动化构建工具make和Makefile怎么使用

发布时间:2023-04-17 11:12:21 作者:iii
来源:亿速云 阅读:80

这篇文章主要讲解了“Linux自动化构建工具make和Makefile怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux自动化构建工具make和Makefile怎么使用”吧!

一、make和Makefile的作用

在一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的 规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂 的功能操作。

所以,makefile带来的好处就是——“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编 译,极大的提高了软件开发的效率。

make是一个命令工具,是一个解释makefile中指令的命令工具,一般来说,大多数的IDE都有这个命 令,比如:Delphi的make,Visual C++的nmake,Linux下GNU的make。可见,makefile都成为了一 种在工程方面的编译方法。 make是一条命令,makefile是一个文件,两个搭配使用,就可以完成项目自动化构建。

二、make和Makefile的使用

在了解依赖关系和依赖方法之前,我们来写一个C语言的小程序。

Linux自动化构建工具make和Makefile怎么使用

我们创建了一个make.c的文件,并写上了一句hello make的代码。

那么我们再创建一个Makefile文件(makefile也可以,但不建议)。

然后我们编辑Makefile文件并写上如下代码:

Linux自动化构建工具make和Makefile怎么使用

然后我们保存退出。

然后我们可以执行make命令。如果提示make不存在,则是因为没有安装,可以切换至root身份安装。安装代码:yum install make 或者 sudo install make

正常执行make后会出现如下显示。

Linux自动化构建工具make和Makefile怎么使用

然后我们ll来查看当前目录下的文件。

我们可以发现多了一个可执行程序make。那我们运行用 ./make 运行试试。

Linux自动化构建工具make和Makefile怎么使用

我们会发现这个可执行程序输出make。

这就是我们的自动化构建工具,只需要在Makefile里面配置一下。往后直接输入make即可编译代码。那我们再输入一次make试试。

Linux自动化构建工具make和Makefile怎么使用

提示我们 make程序是最新的。 也就是说,如果你没有修改或者更新程序的话。 那么则不会为你编译,因为你程序都没动呀,编译它干嘛。

那么此时我们回过来分析一下 Makefile里面写的代码。

Linux自动化构建工具make和Makefile怎么使用

首先我们把它分为三部分

make

make.c

gcc make.c -o make -std=c99

这三者的关系就是, make 是依赖于 make.c 产生的。 它们两者有依赖关系 , 而gcc make.c -o make -std=c99则是 make 依赖于 make.c的方法,叫依赖方法

什么是依赖关系和依赖方法?

打个比方。

月底了,你的生活费用光了。 这个时候你给你爸爸打电话,和他说:“爸,月底了。我没钱了。"。此时你的爸爸就知道了,会给你打生活费。 这里面,你和你的父亲是父子关系,所以你依赖于你的父亲,你们之间有依赖关系。而你的父亲给你生活费,这是你依赖父亲的一种方式,所以这就是依赖方法。如果此时你给你室友的父亲打电话要生活费,他会直接让你滚。因为你们根本不构成依赖关系,不构成依赖关系就没有依赖方法。

Linux自动化构建工具make和Makefile怎么使用

所以我的程序也是一样的。 make 是生成的可执行程序。 而它依赖于make.c,因为它是从 make.c编译来的。而依赖方法则是 执行 gcc make.c -o make -std=c99 这条命令。

依赖关系的原理

清理

我们平时在写代码的时候,经常会需要反复编译,执行代码。

而在下一次重新编译之前,需要清理一下上次生成的可执行程序。但是清理的时候可能清理错误,不小心把源文件删了,这时又造成了问题。

那么我们有没有方法解决呢?答案是当然有。

我们继续编辑Makefile文件。

Linux自动化构建工具make和Makefile怎么使用

我们在原有的基础上加上了

.PHONY:clean

clean:

	rm -f make

那么.PHONY有什么作用呢?

.PHONY修饰的是一个伪目标的,伪目标总是被执行的。clean是自己定义的一条make指令,使用方法为 make clean

那我们来试试吧这条指令

Linux自动化构建工具make和Makefile怎么使用

我们可以看到它被清理了,那为什么说伪目标它总是被执行的呢?我们多次执行它看看。

Linux自动化构建工具make和Makefile怎么使用

我们可以一直执行它,那么我们多次执行make呢?

Linux自动化构建工具make和Makefile怎么使用

我们会发现,make执行了一次,就无法执行了,因为没有被.PHONY修饰。那么我用.PHONY修饰它再试试。

Linux自动化构建工具make和Makefile怎么使用

然后我们保存退出,多次执行make

Linux自动化构建工具make和Makefile怎么使用

我们就可以看到它被多次执行了。但我觉得没有这个必要,因为文件没有被修改的话。重新编译没有意义,所以自动化编译不建议加上.PHONY

我们保存退出,多次执行make

Linux自动化构建工具make和Makefile怎么使用

我们就可以看到它被多次执行了。但我觉得没有这个必要,因为文件没有被修改的话。重新编译没有意义,所以自动化编译不建议加上.PHONY

感谢各位的阅读,以上就是“Linux自动化构建工具make和Makefile怎么使用”的内容了,经过本文的学习后,相信大家对Linux自动化构建工具make和Makefile怎么使用这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

推荐阅读:
  1. Linux下怎么修复Lubuntu中的Docky混合错误
  2. linux vim配置文件的常用命令整理

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

linux makefile make

上一篇:vue中内网/局域网/离线的情况下怎么使用及建立

下一篇:Vue项目配置在局域网下怎么访问

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》