ifeq makefile 或语句_makefile中的“ifeq”条件语法
由于条件指令ifeq经常用于比较从变量(通常包含空格)扩展的单词,我们可能希望并且实际上需要Make来去除任何前导或尾随空格.
事实上,你可能有一个相反的观点,即Make应该逐字记录ifeq条件的所有参数,因为用户可能已经将这些空格作为“测试”的一部分,并打算让这些空白进行决策在评估此ifeq指令时,factor为true或false.
我无法决定,哪一个更正确.
事实上,我并不孤单!
让自己无法决定,哪一个是正确的.因此,它可能会也可能不会剥离前导或尾随空格.
实际上,有时它只会剥离前导空格.
不令人失望,Make有时会剥离尾随空格.
当然,要检查的案例太多,所以我只会“做”其中的一些案例.
makefile(VERSION 1)是:
ifeq ( a, a)
all::
echo 'true'
else
all::
echo 'false'
endif
执行,我得到:
$make -r
echo 'false'
false
makefile(VERSION 2)是:
ifeq (a ,a )
all::
echo 'true'
else
all::
echo 'false'
endif
执行,我得到:
$make -r
echo 'false'
false
makefile(VERSION 3)是:
ifeq ( a , a )
all::
echo 'true'
else
all::
echo 'false'
endif
执行,我得到:
$make -r
echo 'false'
false
makefile(VERSION 4)是:
ifeq (a , a)
all::
echo 'true'
else
all::
echo 'false'
endif
执行,我得到:
$make -r
echo 'true'
true
makefile(VERSION 5)是:
ifeq (a, a)
all::
echo 'true'
else
all::
echo 'false'
endif
执行,我得到:
$make -r
echo 'true'
true
总结一下,只有少数情况,我们有:
# Both, have only leading whitespace.
ifeq( a, a) as: false.
# Both, have only trailing whitespace.
ifeq(a ,a ) as: false.
# Both, have trailing AND trailing whitespace.
ifeq( a , a ) as: false.
# Left-hand-size has only trailing, and right-hand-size has only leading whitepsace.
ifeq(a , a) as: true.
# Left-hand-size has NO whitespace at-all, and right-hand-size has only leading whitepsace.
ifeq(a, a) as: true.
因此,Make用于评估ifeq条件指令的真实性的这种方法肯定会变成:
>不太一致.
>维护不力.
>更难调试.
>容易出错.
>最后,很多“好玩”!
我们同意吗?
ifeq makefile 或语句_makefile中的“ifeq”条件语法相关推荐
- ifeq makefile 或语句_makefile中的ifeq、ifdef、ifneq的区别
判断语句 使用条件判断,可以让make根据运行时的不同情况选择不同的执行分支.条件表达式可以是比较变量的值,或是比较变量和常量的值. 一.示例 下面的例子,判断$(CC)变量是否"gcc&q ...
- ifeq makefile 或语句_makefile中的 ifeq ifneq ifdef ifndef条件判断
feq ifneq ifdef ifndef 条件语句中使用到了三个关键字:"ifeq"."else"和"endif".其中: 1. ...
- ifeq makefile 或语句_makefile ifeq 语句
Page 12 使用条件判断 ifeq,else,endif ifeq ($(CC),gcc) Ifeq表示条件语句的开始,并指定一个条件表达式,表达式包含两个参数, 以逗号分隔,表达式以圆括号括起. ...
- ifeq makefile 或语句_Makefile ifeq、ifneq、ifdef和ifndef(条件判断)
日常使用 Makefile 编译文件时,可能会遇到需要分条件执行的情况,比如在一个工程文件中,可编译的源文件很多,但是它们的类型是不相同的,所以编译文件使用的编译器也是不同的.手动编译去操作文件显然是 ...
- ifeq makefile 或语句_学习笔记:Makefile的ifeq逻辑或,逻辑与的变通实现
(1)ifeq的用法 ifeq ($(变量名), 变量值 ) ........ else ifeq ($(..), ..) ......... else ......... endif (2)最近在学 ...
- python中多条件语句_Python中的带条件语句
所以我编写了这段代码:它的调用方式如下: with c_with(needs_with(), lambda: get_stuff()) as gs: ##DOESN't call get_stuff( ...
- linux shell ifeq,Makefile中的ifeq 多条件使用
Makefile中的ifeq 多条件使用 网上关于makefile中ifeq的介绍已经很多了,为什么我还要在写这篇文章,因为他们只说了if else两种条件的情况,并没有讲多于两种条件情况的使用. 多 ...
- Makefile中的ifeq 多条件使用
Makefile中的ifeq 多条件使用 网上关于makefile中ifeq的介绍已经很多了,为什么我还要在写这篇文章,因为他们只说了if else两种条件的情况,并没有讲多于两种条件情况的使用. 多 ...
- linux shell ifeq,Makefile 中 ifeq ifneq 等用法
(1)ifeq的用法 ifeq ($(变量名), 变量值 ) ........ else ifeq ($(..), ..) ......... else ......... endif (2)最近在学 ...
最新文章
- 关于位姿变换的一点体会
- dac生成信号频率取决于_DAC和AOC,谁将是数据通信领域最终赢家?
- xcode 中的iOS模拟器,home键快捷键
- Java中的字符串驻留
- python struct模块_python struct 模块
- javascript的性能优化tips
- c语言math函数 sgn,常用矩阵计算C语言代码
- matlab二维谐振子,基于有限差分法求解的二维谐振子的MATLAB程序如下。哪位大神能帮我做个注明啊,完全看不懂啊,,急...
- html页面锁屏,JavaScript网页锁屏效果源码实例
- android 常用代码
- JS获取DropDownList的value值与text值
- c 按输入的字母来输出对应效果
- 电脑共享打印机拒绝访问要怎么办
- 周期信号的傅里叶级数
- 解锁!95%的Android程序员做性能优化时,存在的五大误区和两大疑点!
- php获取七牛上传token失效,上传文件到七牛时,bad token了怎么处理?
- 安装完Tensorflow却找不到指定模块
- 我的第一篇论文诞生的故事
- 谈商业软件的发展趋势
- 用C语言实现简单的神经元
热门文章
- ScratchDet:随机初始化训练SSD目标检测器(论文笔记)
- 配置交换机的端口隔离功能
- TinyML:使用 ChatGPT 和合成数据进行婴儿哭声检测
- Python实现PSO粒子群优化支持向量机回归模型(svr算法)项目实战
- 使用networkx绘制社交网络图
- 字符串格式化不整齐 与 chr(12288)
- 麒麟系统鼠标滚轮不能实现页面滚动
- SSL协议之握手协议
- [恒泰医软] windows gettext.py raise ValueError('invalid token in plural form:%s' % value)
- 随机梯度下降算法原理