【问题标题】:Build static library with asset_manager using NDK r10e使用 NDK r10e 使用asset_manager 构建静态库
【发布时间】:2018-03-06 07:57:39
【问题描述】:

我正在构建一个在 C++ 中使用 AAssetManager (#include <android/asset_manager.h>) 的静态库,然后我将使用 java 中的库。

问题是我不能包含libandroid,因为在构建静态库时我不能使用LOCAL_LDLIBS += -landroid。(静态库总是忽略local_ldlibs

那么如何在不使用local_ldlibs 的情况下构建我的静态库呢?

【问题讨论】:

    标签: android-ndk android-assets


    【解决方案1】:

    当你建立一个静态库时,你不需要满足外部引用,但是如果有人使用你的库,他们必须链接libandroid.so。你可以把它放在你的图书馆的文档中。

    如果你提供一个 Android.mk ,你可以设置LOCAL_EXPORT_LDLIBS = -landroid。顺便说一句,您还可以将LOCAL_EXPORT_INCLUDES 设置为您的库的公共标头目录。

    无论如何,NDK 10 已经过时了。我强烈建议迁移到当前版本(除非您迫切需要对 android-3 的支持)。

    【讨论】:

    • 很确定我在 r13/r14 中添加了LOCAL_EXPORT_LDLIBS。所以,是的,更新你的 NDK。
    • 我的问题是我没有指定 APP_PLATFORM 所以默认设置为 android-3(可能是因为我使用的是 NDK 10)。将 APP_PLATFORM 设置为 android-9 后,问题就消失了。
    • @DanAlbert: EXPORT_LDLIBS 出现在 r10e 中。我没有检查完整的历史记录。
    • 我一定在想EXPORT_LDFLAGS 什么的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-06
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    • 2018-10-05
    相关资源
    最近更新 更多