这是一条"空指令",Makefile中使用它来阻止make使用隐含规则构建指定目标。
make 在执行时,需要一个命名为Makefile 的文件。在一个完整的Makefile 中,一般包含了5部分:规则(显示指定和隐含规则)、变量定义(同样包含显示变量和隐含变量)、指示符( include, define 等)和注释。
显 示规则是由作者显示写出的规则,而隐含规则则是内建在make 中,为make 提供了重建某一类目标文件(.o 等)的通用方法,同时这些隐含规则所用到的变量也就是所谓的隐含变量。隐含规则和隐含变量可以通过make -p -f /dev/null 查看。隐含规则的好处是在Makefile 中不需要明确给出重建某一个目标的命令,甚至可以不需要规则。make会为你自动搜寻匹配的隐含规则链。
这个世界上没有免费的午餐,隐含规则的代价之一就是低效,系统必须搜索可能的隐含规则链。同时隐含规则也有可能应用了不是你想要的规则而引入很难debug的错误。
Cancel implicit rules on top Makefile的意思就是取消上述makefile的隐含规则。

大家会奇怪为什么要定义一个没有命令的规则。其唯一的原因是,空命令行可以防止make在执行时试图为重建这个目标去查找隐含命令(包括了使用隐含规则中的命令
和“.DEFAULT”指定的命令。
GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐