Makefile基本操作

Makefile文件的组成

	a. 需要生成的目标文件(target file)
	b. 生成目标文件所需要的依赖文件 (dependency file)
	c. 生成目标文件的编译规则命令行 (command)

Makefile规定在书写command命令行前必须加一个键。

变量

$(变量名)
  1. 通过“=”来实现
    前面的变量可以通过后面的变量来定义

  2. 通过“:=”来实现
    按顺序定义,前面的变量不能通过后面的变量来定义

  3. 通过“+=”来实现
    可以实现给变量追加值。

  4. 通过“?=”来实现
    在这里插入图片描述
    这种方式下变量a1的值是a.o 而不是b.o 也就是说,如果变量a1已经在前面定义过了,那么后面的定义就无效了
    以上所介绍的变量都是全局变量,也就是说在整个Makefile文件中都可以访问的

  5. 增加了支持甘特图的mermaid语法1 功能;

  6. 增加了 多屏幕编辑 Markdown文章功能;

  7. 增加了 焦点写作模式、预览模式、简洁写作模式、左右区域同步滚轮设置 等功能,功能按钮位于编辑区域与预览区域中间;

  8. 增加了 检查列表 功能。

自动推导

自动推导功能默认每一个目标文件都有一个与之对应的依赖文件。这就无需再指定与目标文件对应的依赖文件名了。此外,自动推导功能还能推导出与目标文件对应的基本编译规则命令。

伪目标

伪目标不是真正的目标文件,所以通过伪目标可以让Make工程管理器只执行规则命令,而不用创建实际的目标文件。

由于伪目标不是真正的目标文件,只是一个符号。为了不和真实的目标文件混淆,最好使用“.PHONY”对伪目标进行标识。

文件查找

程序的源文件都根据功能的不同放置在不同的子目录中。

  1. VPATH
    VPATH是一个特殊变量,Make在当前路径找不到源文件时
    使用方法为
    在这里插入图片描述
    Make会在当前路径找不到文件时按照顺序依次查找/a 和/b 目录
  2. vpath
    vpath并不是变量而是关键字,其作用和VPATH类似,但使用方式更加灵活。
    在这里插入图片描述
    Make会在当前路径找不到源文件时先查找/a目录下的C文件,然后查找/b目录下的头文件。

嵌套执行

如果把所有源文件的编译规则命令都写在一个Makefile中,会造成Makefile过于臃肿,因此需要把Makefile分解成多个子Makefile
使用方法为:
在这里插入图片描述

条件判断

在运行时对条件进行判断,然后进入条件分支继续编译
在这里插入图片描述
条件表达式有以下四种格式

  1. ifeq(参数1,参数2)。作用:比较参数1和参数2的值是否相同, 相同为真,相异为假。
  2. ifneq(参数1,参数2)。作用:比较参数1和参数2的值是否相同,相异为真,相同为假。
  3. ifdef(参数)。作用:参数非空为真,空为假。
  4. ifndef(参数)。作用:参数空为真,非空为假。

函数

函数也用符号$ 进行标识,其使用格式为
在这里插入图片描述
常用的基本函数:
(1)subst
在这里插入图片描述
(2) patsubst 格式为
在这里插入图片描述
(3)wildcard 格式为
在这里插入图片描述
(4)strip 参数 格式为
在这里插入图片描述
(5) findstring
在这里插入图片描述
(6)filter
在这里插入图片描述
功能:从参数1中筛选出符合模式参数的字符串。返回值:符合参数模式的字符串
在这里插入图片描述
(7) addsuffix 格式为
在这里插入图片描述
(8) addprefix 格式为
在这里插入图片描述(9) foreach 格式为
在这里插入图片描述
(10) call 格式为
在这里插入图片描述
(11) if 格式为
在这里插入图片描述
(12) dir 格式为

在这里插入图片描述
(13) error 格式为
在这里插入图片描述在这里插入图片描述


  1. mermaid语法说明 ↩︎

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

郁郁-

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

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

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

打赏作者

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

抵扣说明:

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

余额充值