makefile(03)_条件判断
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,8.条件判断语句8.1.语法规则Makefile中支持条件判断语句,可以直接比较两个不同变量的值和常量值。注意:条件判断语句只能用于控制make实际执行的语句,不能控制规则中命令的执行过程。条件判读语
千家信息网最后更新 2026年11月01日makefile(03)_条件判断
8.条件判断语句
8.1.语法规则
Makefile中支持条件判断语句,可以直接比较两个不同变量的值和常量值。
注意:条件判断语句只能用于控制make实际执行的语句,不能控制规则中命令的执行过程。
条件判读语法说明:
条件判断关键字:
示例:
.PHONY : testvar1 := Avar2 := $(var1)var3 :=test: ifeq ($(var1),$(var2)) @echo "var1 == var2" else @echo "var1 != var2" endif ifneq ($(var2),) @echo "var2 is NOT empty" else @echo "var2 is empty" endif ifdef var2 @echo "var2 is NOT empty" else @echo "var2 is empty" endif ifndef var3 @echo "var3 is empty" else @echo "var3 is NOT empty" endif输出结果:
8.2.工程经验
1.条件判断语句之前可有有空格,但不能有Tab字符('\t')
2.在条件语句中不要使用自动变量( $@ $^ @<)
3.一条完整的条件语句必须位于同一个Makefile中
4.条件判断类似C语言中的宏,预处理阶段有效,执行阶段无效
5.Make在加载Makefile时,首先计算表达式的值(赋值方式不同,计算方式不同),根据判断语句单纯表达式决定执行的内容。
问题,下面Makefile执行后是否相同??
答案:不同,前者的赋值方式可以做在make加载Makefile时判断出变量是否定义,而后者无法做出判断。
示例:
.PHONY : testvar1 :=var2 := $(var1)var3 =var4 = $(var3)#var3 = 3 test: ifdef var1 @echo "var1 is defined" else @echo "var1 is NOT defined" endif ifdef var2 @echo "var2 is defined" else @echo "var2 is NOT defined" endif ifdef var3 @echo "var3 is defined" else @echo "var3 is NOT defined" endif ifdef var4 @echo "var4 is defined" else @echo "var4 is NOT defined" endif输出结果:
条件
语句
不同
变量
方式
示例
结果
表达式
规则
语法
阶段
控制
输出
有效
相同
两个
关键
关键字
内容
命令
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网金融科技
南京欣网互联网络科技
为想互联网科技怎么样
重生之互联网科技帝国
互联网公司 科技公司
合肥互联网科技公司
智慧科技互联网
互联网科技上市公司
广州凡科互联网科技
郑州华宇互联网科技
长亮科技 互联网金融
互联网高科技股票
互联网科技热点资讯
创业天下互联网科技有限公司
宝灵互联网科技有限公司
互联网领先科技宣传片
广东鹅鹅鹅互联网科技有限公司
米泉互联网科技专业怎么样
互联网对科技影响
知域互联网科技有限公司官网
百单网互联网科技有限公司
互联网金融监管科技数据
科技与互联网
与互联网科技公司
北京互联网科技
润盈互联网科技
想开互联网科技公司怎么样
广州新华互联网科技学校电竞方面
宁波跨境商互联网科技有限公司
互联网硬科技公司