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

dar*_*ord 3 makefile

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

build/core/prebuilt.mk:91: *** recipe commences before first target.  Stop.
Run Code Online (Sandbox Code Playgroud)

这是相应的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
Run Code Online (Sandbox Code Playgroud)

我不确定这个make文件有什么问题?第91行上的前一个空格是一个标签.

use*_*523 8

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

ifneq ($(prebuilt_module_is_a_library),)
ifneq ($(LOCAL_IS_HOST_MODULE),)
$(transform-host-ranlib-copy-hack)
else
$(transform-ranlib-copy-hack)
endif
endif
Run Code Online (Sandbox Code Playgroud)

  • 您仍然使用空格而不是制表符进行缩进以提高可读性 (3认同)

And*_*eas 5

由于行延续后的制表符,我收到了相同的错误消息:

SOURCES := a.cpp \
b.cpp \<tab><tab>
c.cpp \
d.cpp
Run Code Online (Sandbox Code Playgroud)