是什么意思。 (点)在makefile中的目标之前

时间:2015-09-09 13:10:07

标签: makefile

在make文件中,我发现代码如下所示。 create_file和run_debug之间有什么区别吗?我的意思是使用。 (dot)在create_file之前引入任何功能,如PHONY?

all:debug run_debug
setup: .create_file

.create_file:
      cd /home/user1
      touch file.txt

 run_debug:
      @echo Building debug
      cd /home/user1/debug

2 个答案:

答案 0 :(得分:7)

据我所知,它只有一个目的(在这个makefile中,makefile构造可以避免这个目的)。

来自How make Processes a Makefile

  

默认情况下,make以第一个目标开头(而不是名称以‘.’开头的目标)。这称为默认目标

因此,前导.表示make不会将该目标视为有效的默认目标。

但是,如上所述,all目标是此makefile中的第一个目标,因此这将是默认目标,因此这里的前导点实际上并没有做任何事情。

这就是说setuprun_debug.create_file目标中的所有三个都应该标记为.PHONY并且可能有更好的方式来编写/等等。

答案 1 :(得分:0)

除了默认目标使用之外,我还发现自动完成中不显示以.开头的目标很方便,即输入make + < kbd>标签

所以我在不适合最终用户的目标前面加上 .

相关问题