Makefile .PHONY目标无法按预期工作

时间:2014-06-20 02:31:40

标签: makefile

我正在编写一个简单的Makefile来练习.PHONY目标

#!/bin/make
dir/%/compile:
     @echo "The target '$@ had been built'"

在我的工作目录中,目录布局如下

├── dir
│   └── subdir
│       └── compile
└── Makefile

当我输入 make dir / subdir / compile 时,它声明目标是最新的,如下所示

make: `dir/subdir/compile' is up to date.

没错。 但它仍然声称目标是最新的,即使 .PHONY 目标添加如下

#/bin/make
.PHONY: dir/%/compile
dir/%/compile:
     @echo "The target '$@ had been built'"

据我所知。无论目标是否存在,PHONY都可以无条件地建立目标 然而,它似乎没有应有的效果。任何人都可以帮我搞清楚吗?感谢

1 个答案:

答案 0 :(得分:3)

您不能将模式与.PHONY一起使用。只有真正的目标名称才有效。你只是说名为dir/%/compile的文字目标是虚假的。