【问题标题】:Make rebuilding target制定重建目标
【发布时间】:2022-12-11 21:13:44
【问题描述】:

我有一个不是文件名的 make 目标。

BUILD_DIR := <my build directory path>

build : $(BUILD_DIR)
    recipe

release : build

我观察到,当我第一次调用 build 时,它会执行预期的 build 的配方。但是,当我调用 release 后跟 build 时,它会重新执行 build。我知道为什么会这样,我从 GNU 中读到 make 引用 -

如果您编写了一个规则,其配方不会创建目标文件,则每次目标重新制作时都会执行该配方。

我们有办法避免build被重建吗?我不能简单地打电话给release。我的期望是调用build,然后调用releasebuild在调用release时不应重新执行。我知道我可以简单地删除 release 的依赖,但我不喜欢那样做。有人可以推荐更好的出路吗?

【问题讨论】:

  • 有什么线索吗?让我知道是否需要任何其他信息。但我想这个问题是不言自明的。

标签: makefile gnu-make target recipe


【解决方案1】:

发布应该将构建工件作为先决条件,而不是(虚假的)构建目标。

【讨论】:

  • 那么你的意思是我应该从.phony中删除build并且只保留它作为依赖?
  • .phony 中删除 build 并不能解决问题。它仍在尝试重建build。原因和我之前说的一样
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-23
  • 2023-03-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多