首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用假目标作为目标别名

使用假目标作为目标别名
EN

Stack Overflow用户
提问于 2016-09-19 07:14:05
回答 1查看 414关注 0票数 0

我们有一个(非常复杂的)构建系统,我目前正在试图清理和简化一些。它以一个Perl脚本为中心,该脚本设置各种相互依赖的环境变量,然后启动make。调用什么目标make取决于传递给Perl脚本的参数、其他一些环境变量和当前的月亮阶段。

困扰我的是,我们的makefile包含了太多的虚假目标,这导致目标不断被重建,即使没有必要,这是一个巨大的时间浪费。目标(直接或间接)依赖于大量的虚假目标,而且由于虚假目标总是被认为是“过时的”,许多东西被不必要地更新。

出现这么多虚假目标的原因是,我们的makefile从来没有被直接调用过,但总是通过我前面提到的Perl脚本调用的,并且通过拥有虚假的目标,Perl脚本不需要知道用户想要更新的特定目标的确切路径名称。

我的意图是不再让目标依赖于任何虚假的目标。我希望将所有虚假目标转换为具体的、非虚假的目标,以便每个目标的依赖关系树只包含非虚假目标。然后,为了便于在Perl脚本中访问各个目标,我将为每个目标添加一个新的虚假目标,它只会将具体目标作为其唯一的依赖项,并在其构建配方中打印出一个回声。

我对make不太熟悉,所以我想问一下,这是否会按预期工作,或者是否会产生意想不到的后果。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-19 07:55:27

这将按预期工作(并且是正确的方法),前提是首先创建所有具体目标,让它们依赖于其他具体目标,然后使用以具体目标为先决条件的虚假目标来抽象名称。换句话说,具体的目标应该自己站起来,而不是靠假的。

顺便说一句,如果你愿意的话,你也可以让菜谱空着(不需要一个“虚拟的”echo)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39567357

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档