ifeq makefile 或语句_学习笔记:Makefile的ifeq逻辑或,逻辑与的变通实现
(1)ifeq的用法
ifeq ($(變量名), 變量值 )
........
else ifeq ($(..), ..)
.........
else
.........
endif
(2)最近在學(xué)習(xí)makefile的過(guò)程中遇到需要用ifeq進(jìn)行邏輯與判斷,但是ifeq并沒(méi)有像其他編程語(yǔ)言那樣有 邏輯或(||)? 邏輯與(&&) 的符號(hào)可用。這時(shí)候需要變通一下。
1)邏輯與變通實(shí)現(xiàn):
舉例說(shuō)明:比如需要判斷兩個(gè)變量 VALUE1 和 VALUE2 的值都存在才執(zhí)行某個(gè)動(dòng)作,這需要邏輯與的判斷
C語(yǔ)言的邏輯:? if (?VALUE1??&&? VALUE2){
do something....
}
沒(méi)有&&符號(hào),我們可以這樣變通:將兩個(gè)變量鏈接起來(lái)再判斷
ifneq ($(VALUE1)$(VALUE2),)
do something....
endif
如果變量 VALUE1 和 VALUE2 都有具體的值,比如需要進(jìn)行這樣的判斷: VALUE1 == V1 && VALUE2 == V2, 可以按如下的寫(xiě)法;
ifeq ($(VALUE1)_$(VALUE2), V1_V2)??? ### 當(dāng)然中間的下劃線 "_" 可以用其他字符代替
do something....
endif
2) 邏輯或變通實(shí)現(xiàn),同樣是上面的兩個(gè)變量
if( VALUE1 == V1?|| VALUE2 == V2?) {...} 可以用findstring函數(shù)做如下變通實(shí)現(xiàn):
#如果VALUE1或者VALUE2為V1或V2,則findstring 不會(huì)返回空。
ifneq ($(findstring $(VALUE1)$(VALUE2),? V1? V2),)
do something...
endif
總結(jié)
以上是生活随笔為你收集整理的ifeq makefile 或语句_学习笔记:Makefile的ifeq逻辑或,逻辑与的变通实现的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: html中隐藏单元格上边框,HTML t
- 下一篇: mysql百万级去重_mysql优化小技