2.  使用模式规则

  可以使用模式规则定义一个隐式规则。和一般规则类似,只是在模式规则中,目标的定义需要有“%”字符。“%”定义对文件名的匹配,表示任意长度的非空字符串。在依赖目标中同样可以使用“%”,只是依赖目标中“%”的取值,取决于其目标。

模式规则中“%”的展开和变量与函数的展开是有区别的,“%”的展开发生在变量和函数的展开之后。变量和函数的展开发生在make载入Makefile时,而“%”的展开则发生在运行时。

  1)  模式规则举例

  模式规则中,至少在规则的目标中要包含“%”符号。

  %.o : %.c ; <command ......>

  其含义是,字指出了从所有的.c文件生成相应的.o文件的规则。如果要生成的目标是”a.o b.o”,那么

  %.c”就是”a.c b.c”。

  %.o : %.c

  $(CC) -c $(CFLAGS) $(CPPFLAGS) $< -o $@

  表示把所有的.c文件都编译成.o文件。

  其中,“$@”表示所有目标的集合,”$<”表示所有依赖目标的集合(在模式定义规则的情形下)。

  2)  自动化变量

  自动化变量只应出现在规则的命令中。

变量

含义

$@

表示规则中的所有目标文件的集合。在模式规则中如果有多个目标,“$@”就是匹配于目标中模式定义的集合

$%

仅当目标是函数库文件时,表示规则中的目标成员名,如果目标不是函数库文件(UNIX下是

.a,Windows是.lib),其值为空。

$<

依赖目标中的第一个目标名字,如果依赖目标是以模式(即”%“)定义的,则”$<”是符合模式的一系列的文件集

$?

所有比目标新的依赖目标的集合,以空格分隔

$^

所有依赖目标的集合,以空格分隔。如如果在依赖目标中有多个重复的,则自动去除重复的依赖目标,只保留一份

$+

同”$^”,也是所有依赖目标的集合,只是它不去除重复的依赖目标。

$*

目标模式中“%”及其之前的部分

$(@D)

“$@”的目录部分(不以斜杠作为结尾),如果”$@”中没有包含斜杠,其值为“.”(当前目录)

$(@F)

“$@”的文件部分,相当于函数”$(notdir $@)”

$(*D)

同”$(@D)”,取文件的目录部分

$(*F)

同”$(@F)”,取文件部分,但不取后缀名

$(%D)

函数包文件成员的目录部分

$(%F)

函数包文件成员的文件名部分

$(<D)

依赖目标中的第一个目标的目录部分

$(<F)

依赖目标中的第一个目标的文件名部分

$(^D)

所有依赖目标文件中目录部分(无相同的)

$(^F)

所有依赖目标文件中文件名部分(无相同的)

$(+D)

所有依赖目标文件中的目录部分(可以有相同的)

$(+F)

所有依赖目标文件中的文件名部分(可以有相同的)

$(?D)

所有被更新文件的目录部分

$(?F)

所有被更新文件的文件名部分

转载于:https://www.cnblogs.com/bgd140201136/p/6874484.html

5.18下午 口语课 阅读相关推荐

  1. 使用javascript技术制作,打开网页后 ,根据当前时间,显示:上午 ,下午,或晚上好,并显示当前系统时间0-12 点上午12点到18下午其他时间是晚上

    打开网页后 ,根据当前时间,显示:上午 ,下午,或晚上好,并显示当前系统时间 0-12 点上午 12点到18下午 其他时间是晚上        精确到秒 每秒都自动刷新 <!DOCTYPE ht ...

  2. 利用代码实现自动刷网课阅读时长功能 JAVA

    目录 前言: 理论依据: 现实依据: 朴素版只能循环阅读不能翻页: 升级版 翻页 + 阅读: 如何使用: 前言: 最近不也快结课了,网课该刷的都要刷掉,最近不就把一门思政课刷完了,课后习题也做了,但是 ...

  3. 这门终身制的英语口语课,不讲任何英语知识点。

    [一切皆有可能] 你好,我是弗兰克,这是一个关于普通人逆袭的故事. 曾经的我,做着做网络工程上下架设备的工作,没有一技之长,朝九晚五,每个月收入和支出杯水车薪,工作中被人呼来喝去,生活中无人喝彩,对未 ...

  4. 最新公益课PHP、Vue、Uniapp、微信、Laravel等【共18部公益课】

    2021新课持续更新中- 全部公益免费,欢迎收藏学习! 最新上线公益课(2021.5.1-8.1 ) 1.<vue 3.0全新实战课程(2021版)(第一.二季)> https://www ...

  5. vim使用教程(全)-最好的编辑器 2015-04-09 18:26 40人阅读 评论(0) 收藏...

    vim的学习曲线相当的大,所以,如果你一开始看到的是一大堆VIM的命令分类,你一定会对这个编辑器失去兴趣的.下面的文章翻译自<Learn Vim Progressively>,我觉得这是给 ...

  6. 【雅思备考】Simon口语课

    口语考试概述 考试时间 共计11-14分钟 part1: 4-5min part2:3-4min part3:4-5min 评分标准 流畅度,是否合理 词汇 语法 (少犯错,而不是用复杂语法) 发音 ...

  7. 2021.02.18 Visual QA论文阅读

    目录 [2017][CVPR] Graph-Structured Representations for Visual Question Answering [2019][ICCV] Language ...

  8. 4.6上午口语练习 阅读词汇

    转载于:https://www.cnblogs.com/bgd140201136/p/6672688.html

  9. 3.27下午 口语练习P41

    转载于:https://www.cnblogs.com/bgd140201136/p/6627539.html

最新文章

  1. 复制链接到safari浏览器打开_JS实现复制到剪贴板(兼容FF/Chrome/Safari所有浏览器)...
  2. C++编译器对属性和方法的处理机制
  3. websoc是什么可以卸载吗_函授可以考公务员吗?什么是函授?
  4. Linux版本划分——基于打包方式
  5. python基本数据类型(四)-集合与运算符-python3笔记
  6. C#并行编程(1):理解并行
  7. 深度残差网络_注意力机制+软阈值化=深度残差收缩网络
  8. 图数据库 Neo4j 学习总结
  9. python黑帽子怎么样_PYTHON 黑帽子第二章总结
  10. 火狐浏览器安装插件“组件未验证无法安装”问题解决
  11. 大数据导论学习日志Day1
  12. 没想到曾经排名第一的安全软件,如今变成无法卸载的流氓~
  13. easycode小帮手
  14. “警视”公安指挥决策系统
  15. 小度的进攻,智能音箱的“二战”
  16. 中华英才网全年亏损1.75亿 招聘行业不行了?
  17. [转] meta标签的使用方法
  18. 我的世界win10版与java版_我的世界java版和win10版的区别
  19. 一篇文章看明白 Android v1 v2 签名机制
  20. 18位身份证号码最后一位校验码的计算方法

热门文章

  1. Java删除ArrayList中的重复元素的2种方法
  2. PHP 常见header 状态
  3. POST 一张 图像的调试来认识 http post
  4. Windows2000、XP、2003系统万能Ghost全攻略
  5. 一位校长写给大学学生的一封信
  6. Juniper防火墙新手教程8:Juniper防火墙配置的导入及导出
  7. Ubuntu安装Chrome的方法
  8. 【matlab-1】工具箱、窗口、变量的存储与加载、帮助
  9. 注意:不能将文件名叫做email.py,否则会报 ImportError: No module named mime.text
  10. python函数中变量的作用域_Python中变量的作用域(variable scope)