makefile(03)_条件判断
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,8.条件判断语句8.1.语法规则Makefile中支持条件判断语句,可以直接比较两个不同变量的值和常量值。注意:条件判断语句只能用于控制make实际执行的语句,不能控制规则中命令的执行过程。条件判读语
千家信息网最后更新 2025年12月02日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安全错误
数据库的锁怎样保障安全
忏悔炉石传说数据库
组织机构数据库设计
南阳网络技术销售价格
市北区微信小程序软件开发
网络安全上市厂家
天津数据库空投箱工程
怎样提高访问内部服务器的带宽
switch光遇连接不上服务器
网络技术大赛理论题题库
效果好的网络安全审计
中山通讯软件开发厂家直销
武汉众乐商通网络技术靠谱么
ipa 数据库
达梦数据库 oracle
网络安全风险的防范
软件开发还是电子信息工程好
网络安全word图标
易信网络技术有限公司
数据库top10
计算机网络技术网课公众号
网络安全6个明确
我的世界服务器管理员故意欺负人
湖南曙光服务器维修系统
众包软件开发规划
电脑网络安全检测软件
从文献图获得数据库
我的世界多人服务器地址
我国的网络安全模型是什么
航运保证网络安全
多功能软件开发分类