本文主要是介绍Makefile中条件判断ifeq、ifneq、ifdef、ifndef的含义,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、ifeq
1、举例
根据 $(CC) 取值不同,执行不同的处理逻辑
libs_for_gcc = -lgnu
normal_libs = foo: $(objects)
ifeq ($(CC),gcc) $(CC) -o foo $(objects) $(libs_for_gcc)
else $(CC) -o foo $(objects) $(normal_libs)
endif
- ifeq:表示条件语句的开始,并指定一个条件表达式。表达式包含两个参数,以逗号分隔,表达式以圆括号括起,表示判断表达式与某个值是否相等
- else:表示条件表达式为假的情况
- endif:表示一个条件语句的结束,任何一个条件表达式都应该以endif结束
2、条件表达式的语法
// 表示条件关键字,如“ifeq”
<conditional-directive>; <text-if-true>;
else <text-if-false>;
endif
二、ifneq(与 ifeq 相反)
举例:
比较参数“arg1”和“arg2”的值是否相同。如果不同,则为真
ifneq (<arg1>;, <arg2>;)
三、ifdef
举例:
如果变量 variable-name; 的值 非空,表达式为真。否则,表达式为假。当然,variable-name; 同样可以是一个函数的返回值。注意,ifdef只是测试一个变量是否有值,其并不会把变量扩展到当前位置
ifdef <variable-name>;
四、ifndef(与 ifdef 相反)
举例:
ifndef <variable-name>;
这篇关于Makefile中条件判断ifeq、ifneq、ifdef、ifndef的含义的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!