***食谱在第一个目标之前开始。停止

时间:2016-01-02 03:11:15

标签: makefile

我只是下载了android开源项目并尝试使用我收到消息来构建它:

build/core/prebuilt.mk:91: *** recipe commences before first target.  Stop.

以下是相应的make文件片段(此处的第一行是第89行):

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行上的前一个空格是一个标签。

3 个答案:

答案 0 :(得分:5)

Make对于空格和制表符非常敏感,它将缩进的行视为命令,因此您需要删除它们。例如。它应该是:

ifneq ($(prebuilt_module_is_a_library),)
ifneq ($(LOCAL_IS_HOST_MODULE),)
$(transform-host-ranlib-copy-hack)
else
$(transform-ranlib-copy-hack)
endif
endif

答案 1 :(得分:1)

我在 Ubuntu 16 上构建 AOSP 2.3.1,然后得到了与您相同的错误。 然后我将制作版 v4.1 更改为 v3.81 ,请注意 v3.82 也是错误的版本。最后,我成功建立了AOSP!

答案 2 :(得分:1)

由于连续行后出现制表符,我得到了相同的错误消息:

SOURCES := a.cpp \
b.cpp \<tab><tab>
c.cpp \
d.cpp