双冒号规则在GNU Makefile中的应用与解析
需积分: 9 181 浏览量
更新于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++项目构建过程至关重要。"
2021-10-11 上传
461 浏览量
2017-09-15 上传
点击了解资源详情
295 浏览量
点击了解资源详情
点击了解资源详情
2022-08-03 上传
李_涛
- 粉丝: 55
- 资源: 3867
最新资源
- IEEE 14总线系统Simulink模型开发指南与案例研究
- STLinkV2.J16.S4固件更新与应用指南
- Java并发处理的实用示例分析
- Linux下简化部署与日志查看的Shell脚本工具
- Maven增量编译技术详解及应用示例
- MyEclipse 2021.5.24a最新版本发布
- Indore探索前端代码库使用指南与开发环境搭建
- 电子技术基础数字部分PPT课件第六版康华光
- MySQL 8.0.25版本可视化安装包详细介绍
- 易语言实现主流搜索引擎快速集成
- 使用asyncio-sse包装器实现服务器事件推送简易指南
- Java高级开发工程师面试要点总结
- R语言项目ClearningData-Proj1的数据处理
- VFP成本费用计算系统源码及论文全面解析
- Qt5与C++打造书籍管理系统教程
- React 应用入门:开发、测试及生产部署教程