【问题标题】:ninja: error: ...libmemalloc_intermediates/export_includes', needed by ..., missing and no known rule to make it忍者:错误:...libmemalloc_intermediates/export_includes',需要...,缺少并且没有已知的规则可以做到
【发布时间】:2018-01-30 15:47:03
【问题描述】:

我正在尝试为 Lithium(小米 Mi Mix)构建 Cardinal(牛轧糖)。我必须首先说:我之前已经成功构建了一些基于 LineageOS 的 android rom。这是编译基于 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 中搜索了 libmemalloc,但找不到太多。它应该是一些 Qcom 显示器 LOCAL_MODULE,我发现它在这里被引用,例如: https://github.com/LineageOS/android_hardware_qcom_display/blob/cm-14.1/msm8996/libgralloc/Android.mk

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

任何提示将不胜感激。谢谢!

【问题讨论】:

  • 您是否运行了午餐命令并选择了正确的命令?

标签: android ninja


【解决方案1】:

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

【讨论】:

  • 也许您可以提供更深入的答案或提供示例。
【解决方案2】:

提供库和包含文件的模块(libmemmalloc,在您的情况下,基于集成模块在哪里寻找 export_includes 文件)需要在其 Android.mk 中设置 LOCAL_EXPORT_C_INCLUDE_DIRS 。如果 LOCAL_EXPORT_C_INCLUDE_DIRS 不为空,构建过程将自动生成此文件,然后允许设置 LOCAL_C_INCLUDES 的 other 模块读取它(这些模块也将写入 @987654322 @ 文件,其中包含他们想要的包含路径列表)。

根据导出包含的模块类型,此处以几种不同的方式对其进行了描述:https://android.googlesource.com/platform/build/+/master/core

【讨论】:

    【解决方案3】:

    如果您正在构建沿袭,最好在架构标志之后将其添加到您的设备 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
    

    【讨论】:

      【解决方案4】:

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

      #Display
      TARGET_USES_GRALLOC1 := true
      TARGET_USES_HWC2 := true
      

      【讨论】:

        猜你喜欢
        • 2018-08-23
        • 2023-01-31
        • 2019-07-18
        • 2022-12-15
        • 1970-01-01
        • 2021-09-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多