忍者:错误:... libmemalloc_intermediates / export_includes',需要......,缺失并且没有已知规则来制作它

时间:2018-01-30 15:47:04

标签: android ninja

我正在尝试为Lithium(Xiaomi Mi Mix)制作红衣主教(牛轧糖)。我必须先说:我之前已经成功完成了一些android rom构建,所有基于LineageOS的构建。这是编译基于AOSP的几次尝试之一,和以前一样,由于rom和设备/供应商来源的普遍不匹配,我考虑到了直接的问题。我尽可能广泛地研究它们并且可以解决一些问题,但其他人很难为我解决。

就像这一个:

ninja: Entering directory `.'
ninja: error: '/home/albertoduqe/cardinal/out/target/product/lithium/obj_arm/SHARED_LIBRARIES/libmemalloc_intermediates/export_includes', needed by '/home/albertoduqe/cardinal/out/target/product/lithium/obj_arm/SHARED_LIBRARIES/copybit.msm8996_intermediates/import_includes', missing and no known rule to make it
build/core/ninja.mk:151: recipe for target 'ninja_wrapper' failed
make: *** [ninja_wrapper] Error 1
make: Leaving directory '/home/albertoduqe/cardinal'

#### make failed to build some targets (52 seconds) ####

我已经搜索了所有的StackOverflow,XDA和googlesource for libmemalloc,我找不到多少。它应该是一些Qcom显示LOCAL_MODULE,我发现它在这里引用,例如: https://github.com/LineageOS/android_hardware_qcom_display/blob/cm-14.1/msm8996/libgralloc/Android.mk

我在本地工作树中有那些和(我相信)其余的硬件/ qcom(以及供应商和设备/ qcom)来源,所以我不知道我错过了什么,如果它是一个回购我没有同步,或者我应该替换为另一个同步的,或者某些导致失败的mk文件中的某些更改。

任何提示都将受到赞赏。谢谢!

4 个答案:

答案 0 :(得分:0)

在目标makefile中声明LOCAL_C_INCLUDES。这可能会有帮助。

答案 1 :(得分:0)

提供库和包含文件的模块(在您的情况下,libmemmalloc基于集成模块在其中查找export_includes文件的位置)需要在其Android.mk中设置LOCAL_EXPORT_C_INCLUDE_DIRS。如果LOCAL_EXPORT_C_INCLUDE_DIRS是非空的,则构建过程将自动生成该文件,然后允许设置了LOCAL_C_INCLUDES的 other 模块读取该文件(这些模块还将 write { 1}}文件,并包含所需的包含路径列表。

这里根据导出模块的类型以几种不同的方式进行描述:https://android.googlesource.com/platform/build/+/master/core

答案 2 :(得分:0)

如果您要构建血统,最好将其添加到设备BoarConfig.mk中,紧接在架构标记之后

BOARD_USES_QCOM_HARDWARE := true

这在device.mk中

PRODUCT_PACKAGES += \
    gralloc.msm8953 \
    copybit.msm8953 \
    hwcomposer.msm8953 \
    memtrack.msm8953 \
    android.hardware.graphics.allocator@2.0-impl \
    android.hardware.graphics.allocator@2.0-service \
    android.hardware.graphics.composer@2.1-impl \
    android.hardware.graphics.composer@2.1-service \
    android.hardware.graphics.mapper@2.0-impl \
    android.hardware.memtrack@1.0-impl \
    android.hardware.memtrack@1.0-service \
    libdisplayconfig \
    libqdMetaData.system

答案 3 :(得分:0)

将以下内容添加到您的BoardConfig.mk文件中

#Display
TARGET_USES_GRALLOC1 := true
TARGET_USES_HWC2 := true