目标“ ninja_wrapper”的配方失败/ flex core dumps

时间:2019-02-06 05:42:13

标签: android android-source

第一次使用Android构建器。过去,我经常在FreeBSD上做很多事情。用Android重新进入怪胎。

我正在尝试为Nexus 6 NBD90Z构建android-7.0.0_r14以在仿真下运行。我打算最终为我的实际手机构建,并且此配置非常接近。我在ubuntu 18.04 LTS上构建,它比文档建议的要新。也许这有点冒险。

这是我运行make时得到的。

...狙击

build/core/base_rules.mk:316: warning: ignoring old commands for target 

out/target/product/shamu/system/lib/soundfx/libqcomvoiceprocessing.so'
Starting build with ninja
ninja: Entering directory.' 

ninja: warning: multiple rules generate out/target/product/shamu/system/etc/gps.conf. builds involving this target will not be correct; continuing anyway [-w dupbuild=warn]

[  0% 1/35600] Lex: libaidl-common <= system/tools/aidl/aidl_language_l.ll

FAILED: /bin/bash -c "prebuilts/misc/linux-x86/flex/flex-2.5.39 -oout/host/linux-x86/obj/STATIC_LIBRARIES/libaidl-common_intermediates/aidl_language_l.cpp system/tools/aidl/aidl_language_l.ll"

flex-2.5.39: loadlocale.c:130: _nl_intern_locale_data: Assertion `cnt < (sizeof (_nl_value_type_LC_TIME) / sizeof (_nl_value_type_LC_TIME[0]))' failed.

Aborted (core dumped)
ninja: build stopped: subcommand failed.
build/core/ninja.mk:148: recipe for target 'ninja_wrapper' failed
make: *** [ninja_wrapper] Error 1

A core dump for flex was not produced in spite of the error message given.

out/host/linux-x86/obj/STATIC_LIBRARIES/libaidl-common_intermediates/aidl_language_l.cpp  does not exist. That entire folder is empty. It would seem that something is not downloading/copying the aidl_language_l.cpp. 

关于我可能搞砸了的任何想法吗?

对于git/repo/make/ninja/soong/lunch进行构建的复杂性,我仍然有些困惑。我很可能错过了一些明显的事情。

谢谢, 杰森·威尔斯(Jason C.Wells)

3 个答案:

答案 0 :(得分:0)

我仔细看了一下之后,意识到预建的prebuilts / misc / linux-x86 / flex / flex-2.5.39将不带任何参数地转储核心。我创建了一个到/ usr / bin / flex的软链接。编译似乎正在进行中。

我还没有回答为什么预制件要倾倒的原因。我的目标是编译android,而不是对工具进行故障排除。

答案 1 :(得分:0)

只需将make替换为export LC_ALL=C make或将export放入您的.bashrc

答案 2 :(得分:0)

我执行了Snorky的步骤。我删除了libaidl-common_intermediates的输出目录。我删除了软链接,并恢复了flex的android树版本。我在本地仓库的顶部重新运行了make。构建过程会继续进行,直到出现上述错误,并在出现新错误时停止。看来Snorky的答案有效。

Do!我是新来的,所以没有赞扬我的投票。