makefile自动变量与隐晦规则推导

本文探讨了makefile中的自动变量和隐晦规则,详细解释了如何利用它们简化makefile编写。同时介绍了makefile执行过程,包括隐晦规则的自动推导功能,以及makefile中常用函数的作用,如wildcard、patsubst等。文章还提到了静态库链接时的顺序问题,强调了正确顺序的重要性。

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

博客搬家,原地址:https://langzi989.github.io/2017/09/20/makefile自动变量与隐晦规则推导/

makefile的使用可以大大简化程序编译的过程,不过对于新手来说makefile的执行规则理解起来还是很让人迷糊的。其中最重要的原因是makefile中使用了大量的隐晦规则和自动变量来简化makefile的编写.本节将记录一下makefile自动变量和隐晦规则的推导过程以及makefile的执行流程。

%.o:%.c
$(CC) -c $(CFLAGS) -o $@ $<

> 对于上面的推导规则,makefile是怎么将%c文件编译汇编成.o文件的?下面将针对这个问题进行讲解

## 自动变量
makefile中的自动变量实质上是对一类变量的简写,当我们在模式规则中对这类变量处理的时候可以直接使用自动变量简化makefile代码的编写。自动变量包括如目标文件,依赖文件等。下面以实例的方式列出了一些常用的自动变量:

```shell
a: a.o b.o c.o d.o
 g++ -c $(CFLAGS) -o $@ $<
  • @ : 表 示 模 式 规 则 中 的 目 标 文 件 , 对 于 上 面 的 模 式 规 则 , @: 表示模式规则中的目标文件,对于上面的模式规则, @:,,@表示a
  • &lt; : 表 示 依 赖 中 的 第 一 个 文 件 . 对 于 上 述 规 则 , &lt;: 表示依赖中的第一个文件.对于上述规则, <:.,<表示a.o
  • : 表 示 所 有 依 赖 文 件 的 集 合 , 对 于 上 述 规 则 ^: 表示所有依赖文件的集合,对于上述规则 :
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值