文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

makefile 条件判断语句

2023-09-14 14:46

关注

文章目录

前言


一、条件判断语句的语法说明

  1. makefile 中支持条件判断语句。

条件判断语句只能用于控制 make 实际执行的语句;但是,不能控制规则中命令的执行过程。

  1. 常用形式:
    if xxx (arg1,arg2)
  2. 其他合法格式:
    if xxx “arg1” “arg2”
    if xxx ‘arg1’ ‘arg2’
    if xxx “arg1” ‘arg2’
    if xxx ‘arg1’ “arg2”

注意:
中间不可以有空格
在这里插入图片描述

二、ifeq / ifneq

ifeq (arg1,arg2)    # 如果 arg1 等于 arg2,则执行这里的命令else    # 否则执行这里的命令endififneq (arg1,arg2)    # 如果 arg1 不等于 arg2,则执行这里的命令else    # 否则执行这里的命令endif

三、ifdef / ifndef

ifdef variable    # 如果 variable 被定义,则执行这里的命令else    # 否则执行这里的命令endif

代码讲解:

.PHONY : testvar1 := Avar2 := $(var1)   # 将var1 赋值给 var2var3 := # var3 为空test :ifeq ($(var1),$(var2))# 判断var1 和var2 是否相等@echo "var1 == var2"else@echo "var1 != var2"endififdef var3# 判断var3 是否为空@echo "var3 is NOT empty"else@echo "var3 is empty"endif

在这里插入图片描述

注意:

四、经典示例

提问 :
下面这两段代码的执行结果相同吗?

在这里插入图片描述
实践出真知,下面就来实际实现一下:

.PHONY : testvar1 := var2 := $(var1)# 对 var2 进行简单赋值 var3 =var4 = $(var3)# 对 var3 进行递归赋值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

在这里插入图片描述
结果是不同的,这是由于我们的 条件判断类似于 C 语言中的宏,预处理阶段有效,执行阶段无效

:= 简单赋值= 递归赋值 是不同的。简单赋值会发生在 Makefile 解析的过程中。简单赋值会发生在 Makefile 解析的过程中


总结

下一篇介绍 函数的定义于调用

来源地址:https://blog.csdn.net/wuyiyu_/article/details/130617102

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-服务器
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯