Android NDK安装TARGETS,没有为可执行目标提供RUNTIME DESTINATION

时间:2018-04-09 15:33:26

标签: android c++ cmake android-ndk

我正在尝试在其中一个项目中导入我的android模块中的外部C / C ++库。该库名为android-fluidsynth。我按照this link的说明进行整合。以下是我的install TARGETS given no RUNTIME DESTINATION for executable target "fluidsynth" 的样子:

编辑2 :以下作品

CMakeLists.txt

在尝试构建它时,我收到以下错误:

if(WIN32)
  install(TARGETS fluidsynth
    RUNTIME DESTINATION ./)
else()
  install(TARGETS fluidsynth
    LIBRARY DESTINATION ./)
endif()

我已经浏览了一些SO帖子并在{{1}}中添加了以下行,但我仍然收到此错误。

{{1}}

 有人可以帮忙吗?

2 个答案:

答案 0 :(得分:1)

您不需要为 libfluidsynth 创建自己的CMakeLists.txt。您可以将 externalNativeBuild 指向fluidsynth-android-1.1.10/android/CMakeLists.txt

这定义了 fluidsynth 库,您可以将其用作其他库的依赖项,例如

target_link_libraries(<mylibname> fluidsynth log)

答案 1 :(得分:0)

我在CMakeLists.txt中发现了两个问题:

一个未成年人:set(runtime_destination)语句无效,您可以将其删除。

另一个可能是你的构建错误:DYNAMIC不是有效的CMake库类型,AFAIK。您应该将其更改为SHARED

然后,由于它是导入的目标,您需要通过添加以下内容来指定其位置:

set_target_property(TARGET ${fluidsynth-lib-name} PROPERTY IMPORTED_LOCATION path-to-libfluidsynth.so)