Makefile 103: all & clean

makefile 中的all

因为 makefile 的执行流程是找到第一个目标作为最终生成的目标,如果顺序错乱了,makefile 就可能报错,all 方法就是解决这个问题而存在的,并且,all 方法可以让一个 makefile 生成多个目标。示例如下:

makefile 中的 clean

make clean 命令是用来清除目录下临时文件的,执行 clean 这个目标时,不需要任何依赖项,也就意味着,如果目录下有一个文件名为 clean 的话,执行 make clean 命令时会判断这个目标所依赖的内容是否有变化,如有变化则重新生成,无变化则跳过,而恰恰我们这个 clean 没写依赖规则!这将导致 clean 无论如何都不会被执行。解决这个问题的办法就是将 clean 方法声明为一个伪目标,做就就是让 clean 无论如何都更新,同样我们生成的 all 目标也可能会出现这种情况,所以我们将它们两个都声明为 伪目标,方法如下:

1
2
3
4
clean:
-rm -rf $(obj) main app

.PHONY:clean all
Donate
  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.
  • Copyrights © 2019-2024 John Doe
  • Visitors: | Views:

请我喝杯咖啡吧~