【问题标题】:Is it bad to have no default target in a MakefileMakefile 中没有默认目标是不是很糟糕
【发布时间】:2013-02-26 17:13:42
【问题描述】:

有类似的东西是不好的做法:

all:

在 Makefile 中,强制用户指定目标,而忽略默认的?

【问题讨论】:

  • 取决于您是否想要/需要强制用户指定目标。约定是默认目标是all(即,它是第一个指定的)并构建代码而不部署它。不过,这不是一个有真正答案的问题。
  • Make 只是一个工具,如果您有充分的理由禁用默认目标,并且不认为它会惹恼您的用户,那就随心所欲。
  • 我很惊讶地看到这个问题没有建设性。我来这里是为了在我的 Makefile 中寻找禁用隐式默认目标的最佳实践,因为我发现它是一个令人困惑的默认值。这个问题明确地提出了这个问题,对我来说很有建设性,也许对标题稍作调整。

标签: linux makefile


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2010-12-16
    • 2011-10-06
    • 1970-01-01
    • 2012-10-16
    • 1970-01-01
    • 2011-09-20
    • 2018-01-20
    • 2010-10-30
    • 1970-01-01
    相关资源
    最近更新 更多