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.

发布了171 篇原创文章 · 获赞 130 · 访问量 28万+

猜你喜欢

转载自blog.csdn.net/anlian523/article/details/99972438