make的特殊之处
2024-09-02 23:15:58
1 规则的先后顺序问题
规则的先后顺序只会影响默认的目标,没有其它的影响。
2 make对具有相同目标的规则的处理方式
2.1 如果是单冒号
只能有一个规则是有命令的,然后对它们进行合并,即依赖合并。
2.2 如果是双冒号
分别单独处理,顺序按照makefile中的顺序。这种情况下,只有各个规则的命令是独立才是有意义的。
3 make对模式规则和非模式规则匹配的先后顺序
4 通配符扩展的时机
4.1 不会扩展的情况
第一,定义变量的时候
第二,作为函数的参数的时候
4.2 会自动扩展的情况
在命令中。
4.3 通配符扩展函数wildcard
$(wildcard *.c)
4.4 问题
在目标和依赖中的通配符呢,会自动扩展吗?
5 没有依赖和没有命令的目标作为别人的依赖使用
当没有依赖和没有命令的目标作为别人的依赖使用时,该“别人”目标总是会被重新构建。
6 静态模式规则
静态模式规则是相对于模式规则而言的。
静态模式规则有两个冒号,它指定了明确的目标,然后通过目标模式去匹配依赖模式,从而找到相应的依赖。它是一种自动确定依赖的方法。
而模式规则不光自动确定依赖,还自动确定目标。
7 make的条件判断的特殊之处
其它语言的条件判断是控制执行流的,但是makefile的条件判断并不是控制执行流的,它是控制makefile对make的可见性的,如果条件不满足,那么make就看不到makefile被条件包裹的部分。
8 无论rules的recipe怎么写,recipe的每行前面都必须是tab键,而不能是空格,否则make不能识别。
最新文章
- 使用Git Bash远程添加分支和简单部署你的静态页面
- Sharepoint学习笔记—习题系列--70-576习题解析 -(Q116-Q120)
- CodeForces 701C They Are Everywhere (滑动窗口)
- Orchard Oracle 支持
- 图论 公约数 找环和链 BZOJ [NOI2008 假面舞会]
- linux命令集——<;一>;目录处理命令
- Redis3.0 Install
- 结构体 typedef关键字
- Builder 建造者模式
- yum php56
- j2ee tomcat 部署学习
- vim批量注释
- Windows 虚拟机 忘记密码的处理
- MySQL成勒索新目标,数据服务基线安全问题迫在眉睫
- 11G新特性 -- ASM Fast Mirror Resync
- laravel处理菜单保持的方法:
- C# 在WPF中使用Exceptionless异常日志框架
- Python3.5爬取豆瓣电视剧数据并且同步到mysql中
- mathType插入公式编号,及对公式编号的字体进行修改。调整公式上下间距。
- 中国移动CMPP协议错误码
热门文章
- 宝塔nginx配置
- Images for Journals
- MySql查询语句的使用实例
- python014 Python3 迭代器与生成器
- asp.net静态变量研究
- NYOJ-481平衡字符串
- 『NYIST』第九届河南省ACM竞赛队伍选拔赛[正式赛二]-最小内积(第八届北京师范大学程序设计竞赛决赛)
- 《大话设计模式》Python版代码实现
- 2016 Multi-University Training Contest 4 solutions BY FZU
- BZOJ2501: [usaco2010 Oct]Soda Machine