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

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将外部共享库复制到我的客户端文件夹?

最佳答案

如评论中所建议,以下对我有用:

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

07-24 20:33