Makefile的ifeq逻辑或,逻辑与的变通实现

(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 @   行走的思想  阅读(1441)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
历史上的今天:
2017-12-09 EXCEL通俗易懂讲公式(一):sumif,sumifs,countif,countifs
2017-12-09 Excel 2010 组员参与多个项目,每个组员在各个项目上的bug数分布
2017-12-09 EXCEL2010如何显示工作表中单元格内的公式
2017-12-09 Excel中用countif和countifs统计符合条件的个数 good
2017-12-09 Excel中countif函数的使用方法
2017-12-09 Excel2010如何合并列数据
点击右上角即可分享
微信分享提示