双冒号规则在GNU Makefile中的应用与解析
需积分: 9 32 浏览量
更新于2024-08-08
收藏 1.29MB PDF 举报
"双冒号规则在Boost.ASIO C++网络编程中是一个重要的构建系统概念,主要涉及到Makefile的编写规范。双冒号规则(::)与普通的冒号规则(:)在处理方式上有所不同,尤其在处理同一目标文件在多个规则中的情况。
在Makefile中,一个目标文件可以出现在多个规则中,但这些规则必须是同类型的,即要么都是普通规则,要么都是双冒号规则。双冒号规则的特性在于:
1. 当双冒号规则的依赖文件比目标文件新时,规则会被执行。即使目标文件已经存在,只要依赖文件有更新,就会执行规则中的命令。而普通规则下,如果目标文件已存在,即使依赖文件更新,也不会执行命令。
2. 对于多个双冒号规则指向同一个目标文件的情况,每个规则会独立处理,不会合并依赖。这意味着如果某个依赖文件改变,只会执行该文件对应的双冒号规则,而不会影响其他规则。
例如,如果Makefile中有如下两个规则:
```
Newprog :: foo.c
$(CC) $(CFLAGS) $< -o $@
Newprog :: bar.c
$(CC) $(CFLAGS) $< -o $@
```
如果`foo.c`被修改,`make`会根据`foo.c`重建`Newprog`;同样,如果`bar.c`被修改,`Newprog`会根据`bar.c`重建。如果这些是普通规则,会导致错误,因为目标`Newprog`不能同时出现在普通规则中。
规则的执行顺序遵循它们在Makefile中的书写顺序,与普通规则一致。
GNUmake中文手册提供了一个关于Makefile使用的全面指南,涵盖了Makefile的概述、规则、变量使用、条件语句、文件搜索机制等内容,是编写和理解Makefile的重要参考资料。学习并掌握这些概念对于有效地管理C++项目构建过程至关重要。"
1329 浏览量
310 浏览量
436 浏览量
点击了解资源详情
1027 浏览量
281 浏览量
点击了解资源详情
185 浏览量
李_涛
- 粉丝: 58
- 资源: 3851
最新资源
- python-3.4.4
- elemental-lowcode:元素低码开发平台
- Logger:记录工具
- SheCodes-WeatherApp:挑战3
- 阿宾贝夫前端测试
- 银灿IS917U盘PCB电路(原理图+PCB图)-其它其他资源
- registry-url:获取设置的npm注册表URL
- ST-link驱动.rar
- keen-gem-example:一个 Sinatra 应用程序,使用敏锐的 gem 异步发布事件
- 行业分类-设备装置-一种抗菌纸.zip
- Pearl-Hacks-2021:线框的htmlcss骨架
- a2s-rs:源代码查询的Rust实现
- DotFiles:我的Dotfiles <3
- Magisk Manager-20.1.zip
- ScheduleReboot:此实用程序用于在特定时间重新引导计算机,解决了在目标时间内处于睡眠模式的计算机在唤醒后实施重新引导的问题。
- Online-Face-Recognition-and-Authentication:Hsin-Rung Chou、Jia-Hong Lee、Yi-Ming Chan 和 Chu-Song Chen,“用于人脸识别和认证的数据特定自适应阈值”,IEEE 多媒体信息处理和检索国际会议,MIPR 2019