【问题标题】:Makefile - behavior without additional argumentsMakefile - 没有额外参数的行为
【发布时间】:2017-04-09 20:11:44
【问题描述】:

如何在没有附加参数的情况下定义运行make 的行为?

我试图做类似的事情:

:
    ./someprogram
.PHONY:

为了在不带参数的情况下运行make 时运行someprogram,但我收到以下错误: Makefile:5: *** missing separator. Stop.

【问题讨论】:

  • 如果你不指定参数 make,first 目标将被构建。
  • 如果我想让 make 在这种情况下运行以前构建的程序,这可能吗?
  • 而且你需要有一个命名的目标,即使是“默认”的第一个目标也需要有一个名字。这可能取决于您正在构建的程序。

标签: c command-line makefile arguments


【解决方案1】:

您的 makefile 应如下所示:

all:
    @echo Running test program
    ./someprogram
    @echo program ended..

.PHONY:all

【讨论】:

  • 但我不想让make all 运行我的程序。我想让make 运行它。
  • @KobiT 如果你只是输入 make 它仍然可以工作,默认情况下会调用 all 规则(你不需要输入 make all,只需 make 会自动调用 all 规则)
  • 明确一点,目标all 没有什么特别之处。如果您没有指定要构建的目标,那么 make 将构建在 makefile 中定义的第一个显式目标,无论它被称为什么。碰巧all是makefile中第一个目标的常用名称,但它绝不是通用的,也没有特殊的意义。
猜你喜欢
  • 1970-01-01
  • 2018-05-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多