EXTRA_CFLAGS 的目的是啥?

Posted

技术标签:

【中文标题】EXTRA_CFLAGS 的目的是啥?【英文标题】:What is the purpose of EXTRA_CFLAGS?EXTRA_CFLAGS 的目的是什么? 【发布时间】:2015-01-09 14:21:38 【问题描述】:

EXTRA_CFLAGS 的预期用途是什么?

我在某些情况下看到它,但我一直不明白为什么不将标志附加到 CFLAGS 而不是 EXTRA_CFLAGS

我首先认为 make 如何定义其隐含规则与此有关,但似乎并非如此。据我了解,在 make 隐式规则中没有使用 EXTRA_CFLAGS,对吗?

我将不胜感激。

【问题讨论】:

你有这方面的例子吗? 我没有任何可以分享的示例。这个问题也更多地是关于它的一般使用方式,以及这个参数可能存在的编码约定和软件支持/期望。 【参考方案1】:

嗯,这不是标准 make 或内置 make 规则的任何部分,因此它只是您过去使用的某些 makefile 的约定。它作为一个单独的标志完成的原因是你可以在命令行上使用它:

make EXTRA_CFLAGS=-O3

命令行变量赋值覆盖 makefile 中变量的任何设置,因此附加不起作用。那就是:

$ cat Makefile
CFLAGS += -Dfoo

all: ; @echo '$(CFLAGS)'

$ make CFLAGS=-Dbar
-Dbar

$ make CFLAGS+=-Dbar
-Dbar

两者都会显示-Dbar,而不是-Dfoo -Dbar

这就是为什么它是一个单独的标志。在 automake 环境中,它们明确保留CFLAGS 供用户在命令行上提供,并且所有“正常”标志都放入其他变量中。

【讨论】:

以上是关于EXTRA_CFLAGS 的目的是啥?的主要内容,如果未能解决你的问题,请参考以下文章

AsQueryable() 的目的是啥?

@ConditionalOnProperty 注释的目的是啥?

toBeFalsy() 的目的是啥?

移位的目的是啥? [关闭]

docker build 输出的目的是啥?

partitioningBy的目的是啥