理解Makefile中的隐含变量与规则
需积分: 50 26 浏览量
更新于2024-08-08
收藏 1.24MB PDF 举报
"隐含变量-cfd数值模拟原理-1"
在GNU Make中,隐含变量是一种预定义的变量,它们在内嵌的隐含规则中起着关键作用。这些变量可以被用户通过多种方式重定义,如在Makefile中、通过命令行参数或设置系统环境变量。一旦重定义,make在运行时就会使用这些新的定义,除非使用“-R”或“--no-builtin-variables”选项来取消所有隐含变量及其对应的隐含规则。
例如,编译C源文件的默认隐含规则是使用`$(CC)`变量(默认值为`cc`)加上`-c`选项以及`$(CFLAGS)`和`$(CPPFLAGS)`来执行编译。如果想将`CC`变量设置为`ncc`,可以通过直接在Makefile中设置`CC = ncc`,或在命令行上使用`make CC=ncc`,甚至设置系统环境变量`CC`来实现。重定义`CFLAGS`可以添加或修改编译选项。若要确保子目录间共享相同的编译设置,需使用`export`关键字导出这些变量。
隐含变量大致分为两类:一类代表程序的名称,如`CC`表示C编译器,`AR`用于创建静态库,`AS`为汇编程序,`CXX`代表C++编译器;另一类代表执行程序时的参数,如`CFLAGS`用于存储C编译选项。为保持Makefile的清晰性和可读性,建议将参数集中的共同选项放在一个变量中,避免将参数与程序名称混在一起定义。
在编写Makefile时,遵循模块化原则,使得每个变量都有明确的职责,避免变量之间的关系过于复杂。通过合理利用隐含变量和规则,可以有效地自动化构建过程,提高开发效率。
在更广泛的上下文中,GNU Make中文手册提供了一个基础到高级的指南,涵盖了Makefile的各个方面,包括规则的定义、依赖关系、通配符使用、目录搜索、特殊目标和伪目标等。手册详细解释了如何编写和理解Makefile,以及make工具的工作原理,是理解和使用GNU Make的重要参考资料。
2024-11-19 上传
2024-11-19 上传
2024-11-19 上传
2024-11-19 上传
liu伟鹏
- 粉丝: 24
- 资源: 3856
最新资源
- 深入浅出:自定义 Grunt 任务的实践指南
- 网络物理突变工具的多点路径规划实现与分析
- multifeed: 实现多作者间的超核心共享与同步技术
- C++商品交易系统实习项目详细要求
- macOS系统Python模块whl包安装教程
- 掌握fullstackJS:构建React框架与快速开发应用
- React-Purify: 实现React组件纯净方法的工具介绍
- deck.js:构建现代HTML演示的JavaScript库
- nunn:现代C++17实现的机器学习库开源项目
- Python安装包 Acquisition-4.12-cp35-cp35m-win_amd64.whl.zip 使用说明
- Amaranthus-tuberculatus基因组分析脚本集
- Ubuntu 12.04下Realtek RTL8821AE驱动的向后移植指南
- 掌握Jest环境下的最新jsdom功能
- CAGI Toolkit:开源Asterisk PBX的AGI应用开发
- MyDropDemo: 体验QGraphicsView的拖放功能
- 远程FPGA平台上的Quartus II17.1 LCD色块闪烁现象解析