【问题标题】:one issue with make[3.82] for Android source code build用于 Android 源代码构建的 make[3.82] 的一个问题
【发布时间】:2016-01-15 21:44:30
【问题描述】:

我正在使用 Ubuntu(15.04) 环境来构建 android 源代码。 android K版本需要Make版本为3.81或3.82,我使用的是3.82版本如下:

liny@liny:~/mine/$ make --version
GNU Make 3.82
Built for x86_64-unknown-linux-gnu
Copyright (C) 2010  Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

但是我得到了两个由 Make 引起的构建错误,似乎不支持某些功能,例如 '-=' 或定义功能,有人可以帮忙检查一下并告诉我 make 如何支持这些功能吗?非常感谢您的帮助。

场景 1: 生成文件:

116 ifeq ($(LLVM_VER_31), 1)
117 LLVM_LLC_SOURCES -= \
118         $(LLVM_OXILIASMPRINTER_SRCS)
119 endif

错误: sc/sc.srcs.mk:117: *** 缺少分隔符。停下来。

场景 2: 生成文件:

12 libmmipl_cflags := -g -O3 \
13         $(CPU)
14         -Dlrintf=_ffix_r \
15         -D__alignx\(x\)=__attribute__\(\(__aligned__\(x\)\)\)
16         -D_POSIX_SOURCE \
17         -DPOSIX_C_SOURCE=199506L \

错误: ipl/Android.mk:16: *** 配方在第一个目标之前开始。停下来。

【问题讨论】:

  • 您希望-= 做什么?

标签: android makefile


【解决方案1】:

您的第二个问题是第 15 行末尾缺少 \,因此第 16 行看起来像是新逻辑行的开始。由于它以标签开头,make 认为这是一个不合时宜的食谱。

对于您的第一个问题,无论是使 v3.81 还是最新的 v4.1 都将-= 理解为赋值运算符。

【讨论】:

    猜你喜欢
    • 2014-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-05
    相关资源
    最近更新 更多