【问题标题】:Makefile not respecting default valueMakefile不尊重默认值
【发布时间】:2020-08-31 14:51:09
【问题描述】:

我有一个 GNU Makefile,顶部设置了一些默认值。其中之一是

CC ?= gcc

后来,我有了类似的食谱

file.o: file.c ...
    $(CC) -c $<

但是,在没有其他参数的情况下调用 make 会产生类似的输出

cc -c file.c

为什么不遵守“gcc”的默认值以及为什么要插入这个其他值?如果有帮助,我在 Mac 上。

【问题讨论】:

    标签: makefile gnu-make


    【解决方案1】:

    因为 CC 是 GNU Make 的内置变量,在读取 makefile(到 cc)之前隐式设置,?= 仅在未设置(未定义)时设置变量。

    尽管如此,您仍可以使用:= 进行设置,但我认为这不是您想要的。

    您可以使用选项 --no-builtin-variables 运行 make 来阻止 GNU Make 设置内置变量。这将像您想要的那样工作,但代价是每次调用 make 时都需要该选项,并且所有其他内置变量都需要由 makefile 显式定义。

    【讨论】:

      猜你喜欢
      • 2019-05-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-27
      • 1970-01-01
      • 2013-07-13
      • 1970-01-01
      相关资源
      最近更新 更多