获取"make:'目标'无法执行任何操作"的错误

To1*_*1ne 1 makefile gnu-make

让我用一个例子来说明它.

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)

但是,这并不能阻止化妆使多个目标的时候.

bb-*_*ion 7

问题是,make假定目标名称也是一个由给定命令构建的文件.

但有时这不是真的(例如,想到"干净").要告诉make某些目标不构建此文件,您需要使它们"虚假".将以下行放入Makefile:

.PHONY: target
Run Code Online (Sandbox Code Playgroud)