C++ 条件编译

C++ 条件编译,c++,makefile,C++,Makefile,如何将条件编译添加到makefile:假设我在cpp(.cc)文件中有一个#ifdef SAVE_DATA。通常类似于 cxflags+=-DSAVE_DATA通常类似 CXXFLAGS+=-DSAVE_DATA对于gcc等,您可以使用-Dfoo标志定义foo: g++-DSAVE_DATA=1-c foo.cpp对于gcc等,您可以使用-Dfoo标志定义foo: G++-DaveSeDATA=1 -C fo.CPP 注意修改CXFLAGS是如何将选项传递给Sub中的C++编译器。是的,这是许多

如何将条件编译添加到makefile:假设我在cpp(.cc)文件中有一个
#ifdef SAVE_DATA

通常类似于 cxflags+=-DSAVE_DATA

通常类似
CXXFLAGS+=-DSAVE_DATA

对于
gcc
等,您可以使用
-Dfoo
标志定义
foo


g++-DSAVE_DATA=1-c foo.cpp对于
gcc
等,您可以使用
-Dfoo
标志定义
foo


G++-DaveSeDATA=1 -C fo.CPP

注意修改CXFLAGS是如何将选项传递给Sub中的C++编译器。是的,这是许多可能性之一,但您也可以将其隐式地用作命令,最终使用该命令,正如我在这里所做的那样。我倾向于同时做这两个操作:如果我为特定CPP文件定义自定义规则,我将其写入<代码> $(CXX)$。(CPPFLAGS)$(CXXFLAGS)特殊标志-C-O$$$当然可以使用目标特定变量,但在我的经验中,它们会造成比它们保存的更多的混乱。也许我应该更长久地使用它们。注意,修改CXXFLAGS是如何将选项传递给Sub中的C++编译器。是的,这是许多可能性之一,但也可以隐式地使用它作为参数。我倾向于两者兼而有之:如果我为特定的cpp文件定义一个自定义规则,我将其写成
$(CXX)$(cxflags)$(cxflags)-special-flags-c-o$@$,当然你可以使用特定于目标的变量,但根据我的经验,它们会导致比保存时更多的混乱。也许我应该使用它们更长时间。