Linux自动化构建 -- make与Makefile

本文介绍了make与Makefile的基本概念,包括如何创建Makefile来管理目标文件和依赖,伪目标的创建与使用,以及Makefile中的关键符号$@、$^和$<。通过实例演示了如何编写Makefile,提升开发效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

make与Makefile介绍

一. 介绍make/Makefile
从本质上来说,make是一个命令而Makefile是一个文件。也就是说在Makefile文件中写出依赖关系中的目标文件和依赖关系列表,并写出你想要的操作的指令,这样就可以通过make指令直接执行Makefile文件中的所写的命令行,所以当需要多次调用一种语句的时候,就可以将这个语句写道Makefile文件中,此时只需要在命令行中写入make就可以直接执行,大大提高了效率,那么说了他们的好处,接下来就具体的来说说Makefile如何创建。

二. 创建Makefile

  1. 首先我们要先创建一个名叫Makefile的文件如下:
    在这里插入图片描述
  2. 之后我们对Makefile文件进行编写如下:
    在这里插入图片描述
    在这里插入图片描述
    如上图表示Mytest所代表的就是目标文件,test.c表示的是依赖关系列表,此时Mytest:test.c这个语句表示的就是Mytest文件依赖test.c文件,也就是说Mytest依靠test.c来实现,如何实现呢,就是按照下面的语句进行实现。此时按enter键换行,之后记住还要按TAB键,一定要按TAB键进行向后移动,不能通过空格来相后移动,这样会出现错误的。之后写下依赖方法,也就是执行test.c并附名为Mytest,此时一个Makefile的依赖文件就写好了。之后保存退出。
  3. 执行make指令
    在这里插入图片描述
    此时由上图可以看到,使用make指令就执行了依赖方法的语句,从而会生成Mytest
    在这里插入图片描述
    之后运行Mytest就会执行test.c中的语句如下:在这里插入图片描述

创建伪目标文件

一. 创建伪目标语句
在Makefile中,伪目标其实并不是一个文件,只是一个标签,所以make无法生成它的依赖关系和决定它是否要执行。我们只有通过显示地指明这个“目标”才能让其生效。通过使用.PHONY用来指明伪目标,像make说明,当前文件是伪目标,具体声明如下:
在这里插入图片描述
由上图可知,我们定义的伪目标为clean,此时不需要写依赖列表,而我们的依赖方法就是删除我们新生成的Mytest,实施截图如下:
在这里插入图片描述
此时执行依赖方法的语句之后可以看到Mytest就被我们删除了。

二. 伪目标的特征
伪目标的依赖方法总是被执行的,也就是说当前的方法不仅仅只是执行一次,可以被使用无处次,可以一直调用执行,而如果不是为目标文件就只能被调用一次,而不是无数次。如下:
在这里插入图片描述
此时调用的就不是伪目标,此时只能调用一次,第二次调用就失败了。
在这里插入图片描述
此时伪目标文件就可一直被调用,而不会产生报错。

Makefile文件中的符号

一. $@
此符号表示的是所对应的是依赖关系中的目标文件如:
在这里插入图片描述
二. $^
该符号表示的是依赖关系中的依赖文件列表也就是对应的下面语句中的test.c。如下:
在这里插入图片描述
三. $<
该符号表示的是依赖关系中的一个个依赖文件如下:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值