【问题标题】:Would GNU Make automatically add extra prerequisite?GNU Make 会自动添加额外的先决条件吗?
【发布时间】:2015-05-29 15:56:02
【问题描述】:

以下示例 sn-p 来自 “使用 GNU Make 管理项目(第 3 版)” p.21。

count_words: counter.o lexer.o -lfl

作者说make 会通过隐式规则自动将count_words.o 添加到先决条件列表中。引用:

...,make 确定了四个先决条件:count_words.o(makefile 中缺少此先决条件,但由隐式规则提供)、counter.o、lexer.o 和 -lfl。

但是,我的测试不符合此要求。这是我的测试:

prog: abc.o
    @echo $^
abc.o:
    @echo abc.o built.
prog.o:
    @echo prog.o bulit.

运行make后的输出为:

abc.o 已建成。

abc.o

make 没有为目标prog 寻找prog.o。 有什么问题?我的测试有问题吗?

顺便说一句,我的测试是在 CygwinGNU Make 4.1 上进行的。

【问题讨论】:

    标签: c++ build makefile


    【解决方案1】:

    您为您的prog 目标提供了配方。作者没有针对count_words 目标。这就是区别。

    作者指望内置%: %.o 规则生效。你用你的规则覆盖了它。

    prog 配方中删除@echo $^,然后重试。

    【讨论】:

      猜你喜欢
      • 2012-02-21
      • 2016-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-09
      相关资源
      最近更新 更多