*** recipe commences before first target. Stop
我刚刚下载了android开放源代码项目,并尝试使用make来构建它,我收到消息:
1 | build/core/prebuilt.mk:91: *** recipe commences before first target. Stop. |
这是相应的make文件片段(此处的第一行是行号89):
1 2 3 4 5 6 7 | ifneq ($(prebuilt_module_is_a_library),) ifneq ($(LOCAL_IS_HOST_MODULE),) $(transform-host-ranlib-copy-hack) else $(transform-ranlib-copy-hack) endif endif |
我不确定此make文件怎么了? 第91行前面的空白是一个制表符。
Make对于空格和制表符非常敏感,它会将缩进的行视为命令,因此您需要删除它们。 例如。 它应该是:
1 2 3 4 5 6 7 | ifneq ($(prebuilt_module_is_a_library),) ifneq ($(LOCAL_IS_HOST_MODULE),) $(transform-host-ranlib-copy-hack) else $(transform-ranlib-copy-hack) endif endif |
我在Ubuntu 16上构建AOSP 2.3.1,然后收到与您相同的错误。
然后,我将make版本从v4.1更改为v3.81,请注意v3.82也是错误的版本。 最后,我成功构建了AOSP!
由于连续行后出现制表符,我得到了相同的错误消息:
1 2 3 4 | SOURCES := a.cpp \\ b.cpp \\<tab><tab> c.cpp \\ d.cpp |