我是靠谱客的博主 傲娇冬日,最近开发中收集的这篇文章主要介绍makefile 的ifeq,filter,strip 简单使用。,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

ifeq (,$(filter $(strip $(AAA)), BBB CCC))
do something
else
do nothing
endif

ifeq语句

ifeq : 判断语句,用于比较两个参数是否相等,相等则该语句通过。

如果a和b相等,则do something

ifeq (a, b)
    # do something
endif

filter语句
filter: 过滤语句,过滤掉不符合指定的模式的内容,仅保留符合指定的模式的内容。

VAR := 1 2 3 4 5
指定的模式为 1 2 3,多个模式之间用空格区分
$(filter 1 2 3 , $(VAR))
结果是:
1 2 3

3)
strip 去空字符语句,去掉字串中开头和结尾的空字符(空字符包括空格、[Tab]等不可显示字符)。

VAR = 1 2 3
$(strip $(VAR))
结果是:
1 2 3

总结:

看完这三个语句的说明,我们再来看最开始的

ifeq (,$(filter $(strip $(AAA)), BBB CCC))
do something
else
do nothing
endif

第一种情况:
当AAA 中有 BBB 或者 CCC 的时候:
AAA= BBB DDD
$(strip $(AAA)= BBB DDD
上面就可以写为

ifeq (,$(filter BBB DDD, BBB CCC))
do something
else
do nothing
endif

$(filter BBB DDD, BBB CCC) = BBB
上面就可以写为

ifeq (,BBB)
do something
else
do nothing
endif

所以结果为do nothing。

第二种情况:
当AAA 中没有 BBB 或者 CCC 的时候:

AAA= EEE
$(strip $(AAA)= EEE
上面就可以写为

ifeq (,$(filter EEE, BBB CCC))
do something
else
do nothing
endif

$(filter EEE, BBB CCC) = NULL
上面就可以写为

ifeq (,NULL)
do something
else
do nothing
endif

所以结果为do something。

最后

以上就是傲娇冬日为你收集整理的makefile 的ifeq,filter,strip 简单使用。的全部内容,希望文章能够帮你解决makefile 的ifeq,filter,strip 简单使用。所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(66)

评论列表共有 0 条评论

立即
投稿
返回
顶部