zoukankan      html  css  js  c++  java
  • Makefile 中 ifeq ifneq 等用法

    (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 

  • 相关阅读:
    在 Ubuntu 14.04 Chrome中安装Flash Player(转)
    Tomcat 域名绑定多个Host配置要点
    IIS7.5 与 Tomcat 8整合
    笔记本外接显示器闪屏
    NetworkManager 命令配置nmcli注意
    CentOS 7 目录布局变化
    CentOS 7 Crontab
    jquery的ajax post 方法传值到后台,无法通过HttpServletRequest得到
    没有添加spring mvc 默认依赖包产生的错误
    tcp总结
  • 原文地址:https://www.cnblogs.com/Malphite/p/10302375.html
Copyright © 2011-2022 走看看