千家信息网

makefile(03)_条件判断

发表于:2025-01-24 作者:千家信息网编辑
千家信息网最后更新 2025年01月24日,8.条件判断语句8.1.语法规则Makefile中支持条件判断语句,可以直接比较两个不同变量的值和常量值。注意:条件判断语句只能用于控制make实际执行的语句,不能控制规则中命令的执行过程。条件判读语
千家信息网最后更新 2025年01月24日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安全错误 数据库的锁怎样保障安全 浪潮5270m5服务器管理地址 苏州模具厂erp软件开发 教之初服务器管理系统破解 两个数据库软件 怎么修改移动服务器密码 网络技术公司寒假实践报告 网络安全岗公务员 sql 数据库脱机 ibm服务器硬盘报价 小学生安全漫画网络安全电子书 多程序同时查询数据库慢 如何查看公司服务器的内容 富国互联网科技股票哪时候涨呀 数据库给表的元祖添加数据 一套安全的网络安全体系 江苏综合软件开发厂家报价 成都玖崟互联网科技有限公司成都 网络技术用途 金税盘陕西服务器设置云空间 好用的流媒体服务器 苹果重置后无法连接服务器 sql访问数据库表 江苏人工智能软件开发定制 营口新世纪软件开发有限公司 tp5配置多个数据库 我的世界1核服务器能带多少人 南沙区光纤网络技术开发动态 从事软件开发需要什么技能 druid 导入数据库 中国服务器有名的公会
0