让我用一个例子来说明它.
mkdir test
cd test
touch target
make target
Run Code Online (Sandbox Code Playgroud)
这将导致: make: Nothing to be done for 'target'.
所以make告诉我没有什么可做的.这是因为make没有找到规则target,但因为target已经存在的make告诉我没有什么可做的.
现在,我不希望这样.我希望make在找不到规则时给我一个错误target,即使target已经存在.
我尝试过以下方法:
echo '.DEFAULT:
echo make: *** No rule to make target `$@'. Stop.
false'> Makefile
Run Code Online (Sandbox Code Playgroud)
但是,这并不能阻止化妆使多个目标的时候.
问题是,make假定目标名称也是一个由给定命令构建的文件.
但有时这不是真的(例如,想到"干净").要告诉make某些目标不构建此文件,您需要使它们"虚假".将以下行放入Makefile:
.PHONY: target
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15870 次 |
| 最近记录: |