在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
答案 0 :(得分:7)
据我所知,它只有一个目的(在这个makefile中,makefile构造可以避免这个目的)。
来自How make
Processes a Makefile:
默认情况下,
make
以第一个目标开头(而不是名称以‘.’
开头的目标)。这称为默认目标。
因此,前导.
表示make不会将该目标视为有效的默认目标。
但是,如上所述,all
目标是此makefile中的第一个目标,因此这将是默认目标,因此这里的前导点实际上并没有做任何事情。
这就是说setup
,run_debug
和.create_file
目标中的所有三个都应该标记为.PHONY
并且可能有更好的方式来编写/等等。
答案 1 :(得分:0)
除了默认目标使用之外,我还发现自动完成中不显示以.
开头的目标很方便,即输入make
+ < kbd>标签
所以我在不适合最终用户的目标前面加上 .