linux的make和makefile

本文介绍了Make和Makefile的基本概念、用途、使用方法,包括规则定义、清理指令、替换与变量的应用,以及如何利用它们实现工程的自动化构建。
摘要由CSDN通过智能技术生成

一.什么是make和makefile

makefile作用:

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

make作用:

make是一个命令工具,是一个解释makefile中指令的命令工具,一般来说,大多数的IDE都有这个命令,比如:Delphi的make,Visual C++的nmake,Linux下GNU的make。可见,makefile都成为了一种在工程方面的编译方法
 

注意点:

make是一条命令,makefile是一个文件,两个搭配使用,完成项目自动化构建
 

下面是我简单写的一个makefile文件:

通过该文件就可以实现一些便捷的命令工具。

二.make和makefile的使用与介绍

我们先试用前面的makefile中指令,再详细讲解makefile的内部知识!

1.直接make就是我们的gcc指令:

2.make+clean是我们的第二个清理指令:

现在我们再来学习内部知识:

图中第一行:

mytest1是生成的目标文件

test1.c是依赖文件列表

注意:可以多个,也可以为空

第二行:

该行是命令行,表示依赖方法,可以写多行

第三行:

表示对应的clean总是执行
所以我们可以得出:

.PHONY:XXX        表示为对应的XXX总是执行,不会出现限制

补充知识:

makefile对最新生成的内容不会再次执行!!!

例如下图:

这也是.PHONY的作用之处。

三.make和makefile的深入学习

1.替换

我们在写文件名的时候可能会觉得麻烦,所以我们可以认识以下两种替换来帮助我们便捷使用:

$---表示要执行操作符

@:表示目标文件

^:表示依赖文件列表

当我们将makefile做出以下修改时,也可以执行命令行,且执行时会自动将符号转换为文件

如下:

除了用符号来改写外,我们还可以用变量来改写:

该操作也是可以的,注意加括号即可!!!

我们再来联系我们编译和链接等操作来使用特殊的makefile:

看图:

我们可以分开进行编译链接等操作,最后得出结果

形成不同所需文件:

注意点:

如果你仔细观察会发现我们写的顺序是不符合从上到下的过程的,但是却可以执行,这是因为其可以自动推导,即自动查找:如现在对test1.o操作却没该文件,就会去后面找在返回来操作,类似递归,但是我们的第一行不能改变,其他顺序可变!!!

补充:

如果你不想每次都看执行的命令是什么,可以在前面加@

例如:

这样就不会显示执行的操作内容了。

这就是这部分的内容了,感谢大家的阅读!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jiaofi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值