随笔 - 192,  文章 - 0,  评论 - 2,  阅读 - 25万
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

(1)ifeq的用法

         ifeq ($(变量名), 变量值 )

           ........

         else ifeq ($(..), ..)

           .........

         else

           .........

         endif

 

(2)最近在学习makefile的过程中遇到需要用ifeq进行逻辑与判断,但是ifeq并没有像其他编程语言那样有 逻辑或(||)  逻辑与(&&) 的符号可用。这时候需要变通一下。

        1)逻辑与变通实现:

        举例说明:比如需要判断两个变量 VALUE1 和 VALUE2 的值都存在才执行某个动作,这需要逻辑与的判断

        C语言的逻辑:  if ( VALUE1  &&  VALUE2){

                                           do something....

                                   } 

       没有&&符号,我们可以这样变通:将两个变量链接起来再判断

        ifneq ($(VALUE1)$(VALUE2),)

               do something....

        endif

     

       如果变量 VALUE1 和 VALUE2 都有具体的值,比如需要进行这样的判断: VALUE1 == V1 && VALUE2 == V2, 可以按如下的写法;

       ifeq ($(VALUE1)_$(VALUE2), V1_V2)    ### 当然中间的下划线 "_" 可以用其他字符代替  

               do something....

        endif

 

     2) 逻辑或变通实现,同样是上面的两个变量

         if( VALUE1 == V1 || VALUE2 == V2 ) {...} 可以用findstring函数做如下变通实现:

         #如果VALUE1或者VALUE2为V1或V2,则findstring 不会返回空。

         ifneq ($(findstring $(VALUE1)$(VALUE2),  V1  V2),)

            do something...

         endif

参考:https://blog.csdn.net/u010312436/article/details/52459609 

posted on   Malphite  阅读(15579)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示