【问题标题】:Link different libraries based on ABI基于ABI链接不同的库
【发布时间】:2016-10-20 11:07:50
【问题描述】:

我想链接一个基于 ABI 的不同 C++ 库。我有一个适用于 x86 的 lib 版本和一个适用于 armeabi-v7a 的版本。如何在 Android Studio 中实现这一点?

我无法通过谷歌搜索获得解决方案,而且我是 CMake 和 Gradle 的新手。 Android 作为一个整体 tbh :) 所以非常感谢任何帮助。

【问题讨论】:

    标签: android android-studio cmake


    【解决方案1】:

    我设法以这种方式解决了它:

    set (libs_list "commonLib1" "commonLib2")
    
    if (${ANDROID_ABI} STREQUAL "armeabi-v7a")    
        set(libs_list ${libs_list} "armLib")
    
    elseif ((${ANDROID_ABI} STREQUAL "x86") OR (${ANDROID_ABI} STREQUAL "x86_64"))    
        set(libs_list ${LIBRARIES_LIST} "x86Lib")
    
    endif()
    
    target_link_libraries(native_lib ${libs_list})
    

    【讨论】:

    • Android 直接在不同的 ABI 子文件夹中提取相同的 lib 名称,如果您可以将您的 lib 命名为相同的名称,则创建一个 lib 文件夹,然后创建具有准确 abi 名称的子文件夹,放入 abi-lib在其目录中。这会工作
    • @Gerry 谢谢,我不知道。但是,就我而言,我实际上想为不同的 ABI 加载不同的库。
    • @rozina 你能看看我发布的问题吗? - stackoverflow.com/q/52253127/8199772
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-09
    • 2016-09-12
    • 2015-08-02
    • 2020-07-29
    • 1970-01-01
    • 2018-04-25
    相关资源
    最近更新 更多