跟我一起学Makefile:命令执行与控制

需积分: 50 401 下载量 147 浏览量 更新于2024-08-10 收藏 964KB PDF 举报
"命令执行-算法引论:一种创造性方法---高清版" 这篇资源主要讨论了在Makefile中如何控制命令的显示与执行,以及相关的Makefile编写技巧。由知名作者陈皓讲解,内容涵盖了一些基本的Makefile概念和高级用法。 在Makefile中,命令的显示可以通过在命令行前添加“@”字符来控制。通常,`make`会打印出即将执行的命令,但如果命令前有“@”,则该命令不会被显示,这对于向用户显示自定义信息非常有用。例如,`@echo 正在编译 XXX 模块`会在执行时不显示命令本身,只显示消息。若没有“@”,则两者都会显示。此外,`make`的`-n`或`--just-print`参数用于仅显示命令而不执行,便于调试;而`-s`或`--silent`参数则完全禁止命令的显示。 命令执行的规则是,当依赖目标比目标文件新或者不存在时,`make`会按照规则执行命令。如果需要一条命令的结果作为下一条命令的基础,应将它们写在同一行并用分号分隔,以确保命令顺序和上下文正确,例如: ```make exec: cd /home/hchen; pwd ``` 在Makefile的书写中,还涉及到变量的使用、规则的定义(显式规则和隐晦规则)、文件指示、注释、伪目标、多目标、静态模式等概念。此外,还有如何处理命令错误、嵌套执行`make`、定义命令包、变量的扩展和追加、条件判断以及函数的使用等高级主题。 变量是Makefile的核心组成部分,包括基础变量、变量中的变量、高级用法、追加值、覆盖默认值(override指示符)以及多行变量。环境变量和目标、模式变量也是Makefile中常见的变量类型。条件判断允许根据特定条件执行不同的动作,而函数如字符串处理和文件名操作函数则增强了Makefile的灵活性和表达能力。 这份资源深入浅出地介绍了Makefile的各个方面,是学习和掌握Makefile编写技巧的宝贵资料。通过学习,读者可以更好地理解和控制软件构建过程,提高自动化构建的效率。