2017-06-08 108 views
1

我希望在运行make时在编译器标志附加标志,而无需改变Makefile。运行时附加编译器标志

make CXX_FLAGS+='-DDEBUG' 

以上将“+ =”视为“=”,所以它不是正确的符号。

回答

3

您只需将Makefile中的变量修改为override一次。然后你可以做你想做的事情。

这里的例子,

的Makefile:

override CFLAGS+=-g                      

app: main.c 
    gcc $(CFLAGS) -o app main.c 

运行make:

$ make CFLAGS=-Wall 
gcc -Wall -g -o app main.c 

$ make 
gcc -g -o app main.c 

从命令追加 '-Wall' 到$ CFLAGS

工作正常 这里。这里的manual你可以参考。

+0

或者如果订单很重要,也可以使用'override CFLAGS:= -g $(CFLAGS)'。 –

+0

Nit挑选问题:假设我有一个定义SKIP_FEATURE。如果这是定义的,我不想编译源文件feature.cpp和/或不链接feature.o。我怎么做到这一点? –