5.18下午 口语课 阅读
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下午 口语课 阅读相关推荐
- 使用javascript技术制作,打开网页后 ,根据当前时间,显示:上午 ,下午,或晚上好,并显示当前系统时间0-12 点上午12点到18下午其他时间是晚上
打开网页后 ,根据当前时间,显示:上午 ,下午,或晚上好,并显示当前系统时间 0-12 点上午 12点到18下午 其他时间是晚上 精确到秒 每秒都自动刷新 <!DOCTYPE ht ...
- 利用代码实现自动刷网课阅读时长功能 JAVA
目录 前言: 理论依据: 现实依据: 朴素版只能循环阅读不能翻页: 升级版 翻页 + 阅读: 如何使用: 前言: 最近不也快结课了,网课该刷的都要刷掉,最近不就把一门思政课刷完了,课后习题也做了,但是 ...
- 这门终身制的英语口语课,不讲任何英语知识点。
[一切皆有可能] 你好,我是弗兰克,这是一个关于普通人逆袭的故事. 曾经的我,做着做网络工程上下架设备的工作,没有一技之长,朝九晚五,每个月收入和支出杯水车薪,工作中被人呼来喝去,生活中无人喝彩,对未 ...
- 最新公益课PHP、Vue、Uniapp、微信、Laravel等【共18部公益课】
2021新课持续更新中- 全部公益免费,欢迎收藏学习! 最新上线公益课(2021.5.1-8.1 ) 1.<vue 3.0全新实战课程(2021版)(第一.二季)> https://www ...
- vim使用教程(全)-最好的编辑器 2015-04-09 18:26 40人阅读 评论(0) 收藏...
vim的学习曲线相当的大,所以,如果你一开始看到的是一大堆VIM的命令分类,你一定会对这个编辑器失去兴趣的.下面的文章翻译自<Learn Vim Progressively>,我觉得这是给 ...
- 【雅思备考】Simon口语课
口语考试概述 考试时间 共计11-14分钟 part1: 4-5min part2:3-4min part3:4-5min 评分标准 流畅度,是否合理 词汇 语法 (少犯错,而不是用复杂语法) 发音 ...
- 2021.02.18 Visual QA论文阅读
目录 [2017][CVPR] Graph-Structured Representations for Visual Question Answering [2019][ICCV] Language ...
- 4.6上午口语练习 阅读词汇
转载于:https://www.cnblogs.com/bgd140201136/p/6672688.html
- 3.27下午 口语练习P41
转载于:https://www.cnblogs.com/bgd140201136/p/6627539.html
最新文章
- 复制链接到safari浏览器打开_JS实现复制到剪贴板(兼容FF/Chrome/Safari所有浏览器)...
- C++编译器对属性和方法的处理机制
- websoc是什么可以卸载吗_函授可以考公务员吗?什么是函授?
- Linux版本划分——基于打包方式
- python基本数据类型(四)-集合与运算符-python3笔记
- C#并行编程(1):理解并行
- 深度残差网络_注意力机制+软阈值化=深度残差收缩网络
- 图数据库 Neo4j 学习总结
- python黑帽子怎么样_PYTHON 黑帽子第二章总结
- 火狐浏览器安装插件“组件未验证无法安装”问题解决
- 大数据导论学习日志Day1
- 没想到曾经排名第一的安全软件,如今变成无法卸载的流氓~
- easycode小帮手
- “警视”公安指挥决策系统
- 小度的进攻,智能音箱的“二战”
- 中华英才网全年亏损1.75亿 招聘行业不行了?
- [转] meta标签的使用方法
- 我的世界win10版与java版_我的世界java版和win10版的区别
- 一篇文章看明白 Android v1 v2 签名机制
- 18位身份证号码最后一位校验码的计算方法
热门文章
- Java删除ArrayList中的重复元素的2种方法
- PHP 常见header 状态
- POST 一张 图像的调试来认识 http post
- Windows2000、XP、2003系统万能Ghost全攻略
- 一位校长写给大学学生的一封信
- Juniper防火墙新手教程8:Juniper防火墙配置的导入及导出
- Ubuntu安装Chrome的方法
- 【matlab-1】工具箱、窗口、变量的存储与加载、帮助
- 注意:不能将文件名叫做email.py,否则会报 ImportError: No module named mime.text
- python函数中变量的作用域_Python中变量的作用域(variable scope)