博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第8课 - 条件判断语句
阅读量:7244 次
发布时间:2019-06-29

本文共 1988 字,大约阅读时间需要 6 分钟。

1. makefile中的条件判断语句

(1)makefile 中支持条件判断语句

    — 可以根据条件的值来决定 make 的执行

    — 可以比较 两个不同变量 或者 变量和常量值 方法 

      ifxxx  (arg1,arg2)

      # for true

      else

      # for false

      endif

(2)注意事项:条件判断语句只能用于控制 make 实际执行的语句 ; 但是不能控制规则中命令的执行过程。

 

2. 条件判断语句的语法

(1)常用形式

    ifxxx   (arg1,arg2)

(2)其它合法形式

    ifxxx   "arg1"  "arg2"

       ifxxx   'arg1'   'arg2'

    ifxxx   "arg1"   'arg2'

    ifxxx   'arg1'   "arg2" 

(3)小贴士(注意条件判断语句的格式

       

 

3. 条件判断关键字

    

编程实验:

1 .PHONY : test 2  3 var1 := A 4 var2 := $(var1) 5 var3 := 6  7 test: 8     ifeq ($(var1),$(var2))  9         @echo "var1 == var2"10     else11         @echo "var1 != var2"12     endif13     14     ifneq ($(var2),)15         @echo "var2 is NOT empty"    16     else17         @echo "var2 is empty"    18     endif19     20     ifdef var221         @echo "var2 is NOT empty"    22     else23         @echo "var2 is empty"    24     endif25     26     ifndef var327         @echo "var3 is empty"    28     else29         @echo "var3 is NOT empty"    30     endif

 

4. 一些工程经验

(1)条件判断语句之前可以有空格,但是不能有 Tab 字符('\t')

(2)在条件判断语句不要使用自动变量(@,@,^ , $<)

(3)一条完整的条件语句必须位于同一个 makefile

(4)条件判断类似C语言中的预处理阶段有效,执行阶段无效

(5)make 加载 makefile

    • 首先计算表达式的值(赋值方式不同,计算方式不同)

    • 根据判断语句的表达式决定执行的内容

 

编程实验:

1 .PHONY : test 2 # 赋值方式不同,计算方式不同 3 var1 := 4 var2 := $(var1) 5  6 var3 = 7 var4 = $(var3)  # 由于是递归赋值,因此不能确定变量的值,默认为def 8  9 #var3 = 3 10 11 test:12     ifdef var1 13         @echo "var1 is defined"14     else15         @echo "var1 is NOT defined"16     endif17     18     ifdef var219         @echo "var2 is defined"    20     else21         @echo "var2 is NOT defined"    22     endif23     24     ifdef var3 25         @echo "var3 is defined"26     else27         @echo "var3 is NOT defined"28     endif29     30     ifdef var431         @echo "var4 is defined"    32     else33         @echo "var4 is NOT defined"    34     endif35  36 #输出结果37 var1 is NOT defined38 var2 is NOT defined39 var3 is NOT defined40 var4 is defined

转载于:https://www.cnblogs.com/hoiday/p/9265716.html

你可能感兴趣的文章
技术变现,到底怎么变?这里有几个小众的“金点子”
查看>>
AbstractQueuedSynchronizer 队列同步器(AQS)
查看>>
构建可读性更高的 ASP.NET Core 路由
查看>>
#学习笔记-sql# union实例及用法
查看>>
html-webpack-plugin
查看>>
Promise源码实现2
查看>>
警告WIN10用户!Disk Cleanup可能会误删下载活页夹
查看>>
java B2B2C Springcloud电子商务平台源码-eureka集群整合config配置中心
查看>>
小猿圈python之打印输出九九乘法表
查看>>
支配vue框架模版语法之v-else
查看>>
CentOS7 0安装Maven
查看>>
Python脚本--利用运算符重载简化MongoDB的命令
查看>>
大三这一年的求职感悟(附网易面经+学习经历)|掘金技术征文
查看>>
mpvue小程序踩坑之旅
查看>>
「干货」细说 Javascript 中的浮点数精度丢失问题(内附好课推荐)
查看>>
Potential leak of an object stored into ''
查看>>
挑选云服务器时,哪方面的配置最重要
查看>>
vue页面位置问题
查看>>
面向对象
查看>>
写一个有字符界面的ssh链接工具
查看>>