理解makefile:指定目标与伪目标在程序构建中的应用
需积分: 50 131 浏览量
更新于2024-08-07
收藏 632KB PDF 举报
"指定目标-托马斯微积分第十版"
在编程领域,`make` 是一个自动化构建工具,常用于编译C/C++等语言的项目。它通过读取 `makefile` 来理解项目的构建规则,并自动执行相应的编译、链接任务。在 `make` 的使用中,指定目标是一项重要的功能。
`make` 的默认行为是将 `makefile` 中的第一个目标视为最终目标,而其他目标通常是这个目标的依赖。然而,你可以通过在 `make` 命令后面直接跟随目标名称来指定你希望执行的特定目标。例如,`make clean` 就是一个常见的指定目标,用于清除编译过程产生的临时文件。
`MAKECMDGOALS` 是一个 `make` 的环境变量,它存储了你在命令行上指定的终极目标列表。如果没有指定目标,该变量为空。你可以利用这个变量来编写更复杂的 `makefile`,例如,一个常见的做法是检查 `MAKECMDGOALS` 是否等于 `clean`,如果不是,就包含特定的 `.d` 文件,这些文件通常包含依赖信息。
`make` 支持指定任何目标,包括未在 `makefile` 明确写出但可以通过隐含规则推导出的目标。此外,"伪目标"(如 `all` 和 `clean`)是一种特殊目标,不对应实际文件,而是用于执行特定的任务。`all` 通常用于编译所有目标,而 `clean` 用于删除由 `make` 创建的所有文件。
编写 `makefile` 时,可以利用指定目标的特性实现不同功能。例如,一个 `makefile` 可能包含编译、测试、安装等多个目标,用户可以根据需要选择执行哪个目标。在开源软件的发布中,这样的做法尤为常见,`makefile` 会涵盖从构建到打包的全过程。
陈皓的《跟我一起写Makefile》PDF重制版是一个详细的学习资源,涵盖了 `makefile` 的各个方面,包括规则、变量、命令、条件判断和函数的使用。这本教程可以帮助读者深入理解和掌握 `makefile` 的编写技巧,从而更有效地管理项目构建。
173 浏览量
2018-07-01 上传
291 浏览量
2009-09-18 上传
106 浏览量
SW_孙维
- 粉丝: 55
- 资源: 3832
最新资源
- 全国江河水系图层shp文件包下载
- 点云二值化测试数据集的详细解读
- JDiskCat:跨平台开源磁盘目录工具
- 加密FS模块:实现动态文件加密的Node.js包
- 宠物小精灵记忆配对游戏:强化你的命名记忆
- React入门教程:创建React应用与脚本使用指南
- Linux和Unix文件标记解决方案:贝岭的matlab代码
- Unity射击游戏UI套件:支持C#与多种屏幕布局
- MapboxGL Draw自定义模式:高效切割多边形方法
- C语言课程设计:计算机程序编辑语言的应用与优势
- 吴恩达课程手写实现Python优化器和网络模型
- PFT_2019项目:ft_printf测试器的新版测试规范
- MySQL数据库备份Shell脚本使用指南
- Ohbug扩展实现屏幕录像功能
- Ember CLI 插件:ember-cli-i18n-lazy-lookup 实现高效国际化
- Wireshark网络调试工具:中文支持的网口发包与分析