我正在编写一个简单的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都可以无条件地建立目标 然而,它似乎没有应有的效果。任何人都可以帮我搞清楚吗?感谢
答案 0 :(得分:3)
您不能将模式与.PHONY
一起使用。只有真正的目标名称才有效。你只是说名为dir/%/compile
的文字目标是虚假的。