日期:2014-05-16  浏览次数:20793 次

Makefile中目标的执行顺序
我写了一个makefile结构大致如下:里面有4个伪目标,当我执行make时,它将4个目标全部都执行了,我本来以为在make的时候如果不指定目标的话,它会只执行第一个目标(premake),不知道现在为什么都执行了,谁知道能否帮忙解释一下,如果想实现在不指定目标的情况下执行第一个目标要怎样实现?

====================================================
.PHONY: premake Compiling release precompiling
premake:
  echo "premake"

precompiling: premake
  echo "precompiling"

Compiling: precompiling
  echo "Compiling"

release: Compiling
  echo "release"
====================================================



------解决方案--------------------
你这个makefile执行make,默认执行.PHONY: premake Compiling release precompiling

所以四个目标自然都执到了

要么你改一下.PHONY: premake
要么你直接把.PHONY这一行删除,这样默认make只执行makefile中第一个目标