Makefile 中判断一个变量有没有定义
1个回答
展开全部
判断一个变量有没有定义,如果没有定义,则现在就定义,这在判断一个变量是否由上一级Makefile export该变量,
因为在大的软件中,一般由上层的Makefile export 相关的CC、CFLAGS等变量,而最后一级目录的Makefile不需要
关心CC等的定义,但有时候不想编译整个工程,只想临时编译最低级的一个子目录,而此时子目录的Makefile就需要
判断是否有该变量的定义,没有就需要定义。(另外,上级目录export 的变量不会覆盖下级目录定义的同名变量,想覆盖
的话,使用: make -e )
方法1: ifdef/ ifndef
ifndef $(CC)
CC=../tools/bin/arm-linux-gcc
endif
方法2: ifeq
ifeq($(CC), )
CC=../tools/bin/arm-linux-gcc
endif
方法3: ifeq
ifeq ("$(origin CROSS_COMPILE)", "undefined")
CROSS_COMPILE=../../arm-linux-
endif
因为在大的软件中,一般由上层的Makefile export 相关的CC、CFLAGS等变量,而最后一级目录的Makefile不需要
关心CC等的定义,但有时候不想编译整个工程,只想临时编译最低级的一个子目录,而此时子目录的Makefile就需要
判断是否有该变量的定义,没有就需要定义。(另外,上级目录export 的变量不会覆盖下级目录定义的同名变量,想覆盖
的话,使用: make -e )
方法1: ifdef/ ifndef
ifndef $(CC)
CC=../tools/bin/arm-linux-gcc
endif
方法2: ifeq
ifeq($(CC), )
CC=../tools/bin/arm-linux-gcc
endif
方法3: ifeq
ifeq ("$(origin CROSS_COMPILE)", "undefined")
CROSS_COMPILE=../../arm-linux-
endif
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询