【Makefile由浅入深完全学习记录8】条件判断语句
生活随笔
收集整理的這篇文章主要介紹了
【Makefile由浅入深完全学习记录8】条件判断语句
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
加qq:1126137994 微信:liu1126137994 一起學習更多技術~
今天來學習Makefile中條件判斷語句!
Makefile也算是一門語言,它有自己的語法,那么它應該也會像C/C++語言一樣,支持條件判斷語句!
Makefile中的條件判斷語句:
- 可以根據條件的值來決定make的執行
- 可以比較兩個不同的變量或者變量和常量的值
注意事項:
條件判斷語句只能用于控制make實際執行的語句,但是不能控制規則中命令的執行過程!!!
條件判斷語句的語法說明:
- 常用形式
- 其他合法形式
注意下圖的問題:
判斷語句前面可以是空格,但不能是tab鍵
條件判斷關鍵字:
下面看一個例子,來加深對上述理論的理解:
.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后有這個錯誤:
這個錯誤實際上是,判斷語句前面應該是空格,而我的判斷語句前面都是tab字符,我將判斷語句前面的tab鍵全部刪除換成空格后,就可以了!
修改后,運行make顯示:
下面總結的是Makefile中判斷語句的一些工程上的經驗:
make在加載makefile時
*首先計算表達式的值(賦值方式不同,計算方式不同)
根據判斷語句的表達式*,決定執行的內容
分析一下,下圖中的兩個代碼,輸出是相同的么:
看看下面的代碼:
.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運行make后顯示:
總結:
想一起探討以及獲得各種學習資源加我:
qq:1126137994
微信:liu1126137994
可以共同交流關于嵌入式,操作系統,C++語言,C語言,數據結構等技術問題。
總結
以上是生活随笔為你收集整理的【Makefile由浅入深完全学习记录8】条件判断语句的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 软考论文案例-论微服务架构及其应用
- 下一篇: Face Alignment by 30