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.