【问题标题】:GNU Make does not execute first targetGNU Make 不执行第一个目标
【发布时间】:2015-11-05 14:21:03
【问题描述】:

我正在处理一个由其他开发人员编写的复杂 make 文件,这个 makefile 还包含其他 makefile。

我在 makefile 的开头放置了一个愚蠢的规则,然后调用了 makefile 而不指定一个目标,期望第一个规则只执行(这与某些东西相呼应),但我发现其他规则被调用了。

我想知道是否存在其他规则可能在第一条规则之前被评估的情况(可能是因为包含或二次扩展或其他)?

【问题讨论】:

    标签: makefile gnu-make


    【解决方案1】:

    make 看到的第一个(非模式非前导点)规则是默认目标(默认情况下)。无论是来自Makefile 还是某些包含的makefile 都无关紧要。

    此外,makefile 可以通过设置 .DEFAULT_GOAL special variable 来覆盖它。

    这在 GNU make 手册的How make Processes a Makefile 部分进行了讨论。

    默认情况下,make 以第一个目标开头(不是名称以“.”开头的目标)。这称为默认目标。 (目标是最终努力更新的目标。您可以使用命令行(参见Arguments to Specify the Goals)或使用.DEFAULT_GOAL 特殊变量(参见Other Special Variables))覆盖此行为。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-16
      • 1970-01-01
      • 2018-12-09
      • 2023-02-07
      • 2016-12-19
      • 1970-01-01
      相关资源
      最近更新 更多