EXTRA_CFLAGS 的目的是什么?
What is the purpose of EXTRA_CFLAGS?
EXTRA_CFLAGS
的预期用途是什么?
我在某些情况下看到它,但我一直不明白为什么人们不只是将标志附加到 CFLAGS
而不是 EXTRA_CFLAGS
。
我一开始以为与make如何定义其隐式规则有关,但事实并非如此。据我了解,在 make 隐式规则中没有使用 EXTRA_CFLAGS
,对吗?
不胜感激。
好吧,这不是标准 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
供用户在命令行上提供,并且所有 "normal" 标志都放入其他变量中。
EXTRA_CFLAGS
的预期用途是什么?
我在某些情况下看到它,但我一直不明白为什么人们不只是将标志附加到 CFLAGS
而不是 EXTRA_CFLAGS
。
我一开始以为与make如何定义其隐式规则有关,但事实并非如此。据我了解,在 make 隐式规则中没有使用 EXTRA_CFLAGS
,对吗?
不胜感激。
好吧,这不是标准 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
供用户在命令行上提供,并且所有 "normal" 标志都放入其他变量中。