下面是一个示例的Makefile,其中包含了并行运行目标并在它们完成后等待继续执行其他任务的解决方法:
.PHONY: all target1 target2 target3
all: target1 target2 target3
@echo "All targets completed"
target1:
@echo "Running target1"
@sleep 3
target2:
@echo "Running target2"
@sleep 2
target3:
@echo "Running target3"
@sleep 1
在这个示例中,我们定义了三个目标:target1、target2和target3。这些目标分别执行一些任务,并使用sleep
命令模拟任务的执行时间。
在all
目标中,我们列出了需要依次执行的目标:target1、target2和target3。Makefile会自动并行运行这些目标,并等待它们全部完成后继续执行其他任务。
你可以使用以下命令来运行Makefile:
$ make
输出将会是:
Running target3
Running target2
Running target1
All targets completed
可以看到,目标target3首先开始运行,然后目标target2,最后是目标target1。当所有目标完成后,Makefile会继续执行all
目标后面的任务,输出"All targets completed"。