具有多个命令的Makefile

具有多个命令的Makefile,makefile,Makefile,我创建了一个Makefile,如下所示: test : python -m pytest -v test run : python run.py 我可以运行make run,它可以正确执行命令。但是当我运行maketest时,我看到:make:test'是最新的` 但是,如果我取出run区域,那么test将正常工作 我无法找出我缺少了什么。您的生成文件需要如下所示: .PHONY: test run test: python -m pytest -v test run:

我创建了一个Makefile,如下所示:

test :
  python -m pytest -v test
run :
  python run.py
我可以运行
make run
,它可以正确执行命令。但是当我运行
maketest
时,我看到:
make:
test'是最新的`

但是,如果我取出
run
区域,那么
test
将正常工作


我无法找出我缺少了什么。

您的生成文件需要如下所示:

.PHONY: test run

test:
    python -m pytest -v test

run:
    python run.py

.PHONY
行是GNU make表示这些特定目标不产生任何输出的方式。如果您想了解更多信息,请阅读上的文档。

阅读有关make works的文档可以解决此问题:您的目标没有依赖项,因此它们将始终是最新的。也许描述一下你想要达到的目标,并让这个问题成为一个真实的问题。你没有任何依赖性或条件使目标得以实现,所以一切都是最新的。你需要学习。目标并不总是最新的。如果目标存在(作为磁盘上的文件或目录),它们将是最新的。没有先决条件的目标如果存在则视为最新,如果不存在则视为过期。