【问题标题】:How to explicitly call the default target when calling make?调用make时如何显式调用默认目标?
【发布时间】:2013-12-12 00:05:59
【问题描述】:

假设我的 Makefile 有第一个目标叫做“all”,所以这是默认目标。然后假设我也有一个“干净”的目标。 如果我想发出“重建”命令,我可以写:

make clean all

它们将被依次调用。但是假设我不想显式命名“all”目标并让 make 使用默认的目标,就像您通常所做的那样:

make

现在,如何使用默认实现“重建”命令?它应该是这样的:

make clean .DEFAULT_GOAL

但该特殊变量在命令行中不起作用。

这只不过是一种好奇心,因为可以在 Makefile 中定义一个“重建”目标并使用该变量(或键入“make clean && make”),但有可能以某种方式实现吗?

非常感谢。

【问题讨论】:

  • 问题开头有一个“你好”,但网站一直删掉它,如果看起来有点不礼貌,请见谅。

标签: makefile


【解决方案1】:

在不知道默认目标名称并使用它的情况下,无法在命令行上放置一个通用目标名称,这意味着“默认目标”。

如果这就是你要问的。

【讨论】:

  • 没错,我觉得奇怪的是,一个相当复杂的程序缺少该功能。
  • 我以前从未听说有人要求过它,而且我使用 make 已经真的很长时间了。实际上,运行像make clean all(或等效的命令,如果存在的话)这样的命令并不是很有用,至少在支持并行构建的现代构建系统上不是这样。我认为大多数人更喜欢运行两个不同的命令,或者,如果这是人们经常想要做的事情,请在 makefile 中创建一个特定的规则来执行它(从并行构建的角度来看,它可以正确地完成)。
猜你喜欢
  • 2018-10-12
  • 1970-01-01
  • 2011-07-19
  • 2021-10-07
  • 2016-10-15
  • 1970-01-01
  • 2017-11-29
相关资源
最近更新 更多