Gcc 在makefile中导出预处理器宏
我想将预处理器宏从特定目标中的主makefile导出到内部makefile 例如: 主生成文件Gcc 在makefile中导出预处理器宏,gcc,makefile,g++,gnu-make,Gcc,Makefile,G++,Gnu Make,我想将预处理器宏从特定目标中的主makefile导出到内部makefile 例如: 主生成文件 target1 : CXXFLAGS+=-DNewFlag=NewFlag cd some_directory; make 这里我想使用CXXFLAGS的值,它是-DNewFlag=NewFlag,并且仅在某个目录/make的target1下定义 请告诉我如何实现这一点。除非您在子目录的makefile中对变量进行了安排,否则无法从命令行追加变量 最简单的方法是使用不同的变量,如下所示:
target1 :
CXXFLAGS+=-DNewFlag=NewFlag
cd some_directory; make
这里我想使用CXXFLAGS的值,它是-DNewFlag=NewFlag,并且仅在某个目录/make的target1下定义
请告诉我如何实现这一点。除非您在子目录的makefile中对变量进行了安排,否则无法从命令行追加变量 最简单的方法是使用不同的变量,如下所示:
target1:
cd some_directory && $(MAKE) EXTRA_CXXFLAGS=-DNewFlag=NewFlag
CXXFLAGS += $(EXTRA_CXXFLAGS)
(注意:调用子MAKE时,应始终使用$(MAKE)
或${MAKE}
,切勿直接使用MAKE
。)
然后在子目录makefile中执行以下操作:
target1:
cd some_directory && $(MAKE) EXTRA_CXXFLAGS=-DNewFlag=NewFlag
CXXFLAGS += $(EXTRA_CXXFLAGS)
除非在子目录的makefile中对变量进行了安排,否则无法从命令行追加到变量 最简单的方法是使用不同的变量,如下所示:
target1:
cd some_directory && $(MAKE) EXTRA_CXXFLAGS=-DNewFlag=NewFlag
CXXFLAGS += $(EXTRA_CXXFLAGS)
(注意:调用子MAKE时,应始终使用$(MAKE)
或${MAKE}
,切勿直接使用MAKE
。)
然后在子目录makefile中执行以下操作:
target1:
cd some_directory && $(MAKE) EXTRA_CXXFLAGS=-DNewFlag=NewFlag
CXXFLAGS += $(EXTRA_CXXFLAGS)
导出变量无法更改,因此请使用另一个变量名来执行此操作…Ankur,我无法理解您的意思。不要将CXXFLAG用作导出变量…导出变量无法更改,因此请使用另一个变量名来执行此操作…Ankur,我无法理解您的意思。不要将CXXFLAG用作导出变量。。