Linux 在Makefile中没有默认目标是否不好
这是一种不好的做法,比如:Linux 在Makefile中没有默认目标是否不好,linux,makefile,Linux,Makefile,这是一种不好的做法,比如: all: 在Makefile中,强制用户指定目标并忽略默认目标?all不一定是默认目标。默认目标是在makefile中定义的第一个目标。另外,如果您将空目标保留为默认目标(并且确保在makefile中的其他地方没有其他具有规则的all目标),make的行为可能有点令人费解。我建议让默认行为打印适当的错误消息,例如: error: @echo "Please choose one of the following target: compile, in
all:
在Makefile中,强制用户指定目标并忽略默认目标?
all
不一定是默认目标。默认目标是在makefile中定义的第一个目标。另外,如果您将空目标保留为默认目标(并且确保在makefile中的其他地方没有其他具有规则的all
目标),make
的行为可能有点令人费解。我建议让默认行为打印适当的错误消息,例如:
error:
@echo "Please choose one of the following target: compile, install, uninstall"
@# Alternatively: "Please RTFI(nstall)F(ile)"
@exit 2
取决于您是否希望/需要强制用户指定目标。约定是默认目标为
all
(即,它是第一个指定的目标),并在不部署代码的情况下构建代码。不过,这不是一个有真正答案的问题。Make只是一个工具,如果你有很好的理由禁用默认目标,并且不认为它会激怒你的用户,那就做你喜欢的事情。我很惊讶地看到这个问题以没有建设性的方式结束。我来这里是为了寻找一种在Makefile中禁用隐式默认目标的最佳实践,因为我发现它是一个令人困惑的默认值。这个问题问得很明确,对我来说很有建设性,也许只是标题上的一个小改动。