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.

posted @ 2019-08-21 21:40  allMayMight  阅读(958)  评论(0编辑  收藏  举报