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