首页 > 解决方案 > Android NDK:CMAKE 如何将 IMPORTED 共享库移动到 libs 文件夹

问题描述

我有一个构建的 Android NDK 项目,libMyProject1.so我正在使用:

set_target_properties(MyProject1
        PROPERTIES
        LIBRARY_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/../Client/libs/${ANDROID_ABI}")

将构建的库导出到我需要的文件夹。

我还有另一个与我链接的外部共享库:

我的外部图书馆

add_library(MyExternal SHARED IMPORTED)
set_target_properties(MyExternal PROPERTIES IMPORTED_LOCATION        ${CMAKE_CURRENT_SOURCE_DIR}/../MyExternal/libs/${ANDROID_ABI}/libMyExternal.so)

target_link_libraries( # Specifies the target library.
        MyProject1
        # Shared Dependencies
        MyExternal
        # Links the target library to the log library
        # included in the NDK.
        ${log-lib})

libMyProject1.so被复制到Client/libs/${ANDROID_ABI}libMyExternal.so不被复制。如何使用 cmake 将外部共享库复制到我的客户端文件夹?

标签: androidcmakeandroid-ndkandroid-gradle-plugin

解决方案


正如评论中所建议的,以下内容对我有用:

file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/../MyExternal/libs/${ANDROID_ABI}/libMyExternal.so
        DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/../Client/libs/${ANDROID_ABI})

推荐阅读