帮我看看这个makefile怎么执行的

我的makefile文件如下

file1 file2 file3 : 2.txt 3.txt 4.txt
    @echo $@ 
    @echo $*
    @echo $<
    @echo $^
    @echo $?

2.txt 3.txt 4.txt : 1.txt
    @echo $@ 
    @echo $*
    @echo $<
    @echo $^
    @echo $?

1.txt 2.txt 3.txt 4.txt都是存在的文件,其中1.txt比其他三个txt文件新,而file1 file2 file3是不存在的,然后执行makefile得到的结果如下
$ make
2.txt

1.txt
1.txt
1.txt
3.txt

1.txt
1.txt
1.txt
4.txt

1.txt
1.txt
1.txt
file1

2.txt
2.txt 3.txt 4.txt
2.txt 3.txt 4.txt
2.txt 3.txt 4.txt最为目标都执行了一遍,file1执行了一遍,file2和file3为什么没有执行呢,是不是file1是最终的目标,而file2,file3虽然写在一个合并的命令里边,但是和整个关系链没有关系,所以不执行。

回复
阅读 2k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏