mk文件報錯:Extraneous text after `else' directive、only one `else' per conditional


報這兩個錯主要是因為沒有搞清楚mk文件里if的寫法。
因為else ifeq這兩個關鍵詞是否寫在一排是有區別的:

寫在一排

ifeq ($(version), user)
LOCAL_SRC_FILES := \

else ifeq ($(version), debug)
LOCAL_SRC_FILES := \

else
LOCAL_SRC_FILES := \

endif

這種情況只需要一個endif,因為if層次只有一層。類似:

if(xx) {

}else  if(yy){

}else {

}

寫在兩排

ifeq ($(version), user)
LOCAL_SRC_FILES := \

else 
ifeq ($(version), debug)
LOCAL_SRC_FILES := \

else
LOCAL_SRC_FILES := \

endif
endif

這種情況則需要兩個endif,因為if層次有兩層。類似:

if(xx) {

}else{
    if(yy) {
    
    }else{
    
    }
}

最后有兩個連續的反大括號,對應兩個endif。

其他

另外,提醒一下:
ifeq(之間一定要有空格,不然報錯Miss separator.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM