【Makefile由浅入深完全学习记录8】条件判断语句
加qq:1126137994 微信:liu1126137994 一起學(xué)習(xí)更多技術(shù)~
今天來學(xué)習(xí)Makefile中條件判斷語句!
Makefile也算是一門語言,它有自己的語法,那么它應(yīng)該也會像C/C++語言一樣,支持條件判斷語句!
Makefile中的條件判斷語句:
- 可以根據(jù)條件的值來決定make的執(zhí)行
- 可以比較兩個不同的變量或者變量和常量的值
注意事項:
條件判斷語句只能用于控制make實際執(zhí)行的語句,但是不能控制規(guī)則中命令的執(zhí)行過程!!!
條件判斷語句的語法說明:
- 常用形式
- 其他合法形式
注意下圖的問題:
判斷語句前面可以是空格,但不能是tab鍵
條件判斷關(guān)鍵字:
下面看一個例子,來加深對上述理論的理解:
.PHONY : testvar1 := A var2 := $(var1) var3 := test:ifeq ($(var1),$(var2))@echo "var1 == var2"else@echo "var1 != var2"endififneq ($(var2),)@echo "var2 is NOT empty"else@echo "var2 is empty"endififdef var2@echo "var2 is NOT empty"else@echo "var2 is empty"endififndef var3@echo "var3 is empty"else@echo "var3 is NOT empty"endif一開始make后有這個錯誤:
這個錯誤實際上是,判斷語句前面應(yīng)該是空格,而我的判斷語句前面都是tab字符,我將判斷語句前面的tab鍵全部刪除換成空格后,就可以了!
修改后,運(yùn)行make顯示:
下面總結(jié)的是Makefile中判斷語句的一些工程上的經(jīng)驗:
make在加載makefile時
*首先計算表達(dá)式的值(賦值方式不同,計算方式不同)
根據(jù)判斷語句的表達(dá)式*,決定執(zhí)行的內(nèi)容
分析一下,下圖中的兩個代碼,輸出是相同的么:
看看下面的代碼:
.PHONY : testvar1 := var2 := $(var1)var3 = var4 = $(var3)#var3 = 3 test:ifdef var1 @echo "var1 is defined"else@echo "var1 is NOT defined"endififdef var2@echo "var2 is defined" else@echo "var2 is NOT defined" endififdef var3 @echo "var3 is defined"else@echo "var3 is NOT defined"endififdef var4@echo "var4 is defined" else@echo "var4 is NOT defined" endif運(yùn)行make后顯示:
總結(jié):
想一起探討以及獲得各種學(xué)習(xí)資源加我:
qq:1126137994
微信:liu1126137994
可以共同交流關(guān)于嵌入式,操作系統(tǒng),C++語言,C語言,數(shù)據(jù)結(jié)構(gòu)等技術(shù)問題。
總結(jié)
以上是生活随笔為你收集整理的【Makefile由浅入深完全学习记录8】条件判断语句的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 软考论文案例-论微服务架构及其应用
- 下一篇: Face Alignment by 30