android-ndk - CMake: "add_library IMPORTED"检查库是否存在

标签 android-ndk cmake

我正在使用 add_library 在 CMAKE 中导入静态库. lib 导入正常。但我也想验证这一点。所以我这样做:

add_library(MYLIB STATIC IMPORTED)
set_target_properties(MYLIB PROPERTIES IMPORTED_LOCATION path/to/mylib.a)
#if(NOT  MYLIB)
  #  message(FATAL_ERROR "MYLIB library not found")
#endif()

它总是返回 false,即使路径正确并且 lib 导入正常。我如何检查 lib 是否已导入?

使用 Cmake 3.4.1

最佳答案

命令 add_library() 创建一个目标,而不是变量

可以使用TARGET关键字检查目标是否存在:

add_library(MYLIB STATIC IMPORTED)
#...

if(NOT TARGET MYLIB)
   # Target is not exist
endif()

请注意,库目标 的存在并不意味着文件 的存在。文件的存在应该使用EXISTS关键字:

if(EXISTS <path>)

关于android-ndk - CMake: "add_library IMPORTED"检查库是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44737395/

相关文章:

Android NDK/异常?

assembly - 如何使用 Cmake 用 NASM 构建二进制文件

c++ - CMake,当使用 FindFoo.cmake 或 FooConfig.cmake (和其他说明)

ios - 如何通过 CMake 使用 Xcode 生成compiler_command.json

java - 如何读取从 Java 传递到 JNI 的对象数组

java - Android Studio : generating . so文件使用实验性插件

java - 将 findElementById ("elementID")与 appium 用于 native Android 应用程序。错误: "Locator strategy ' css selector"is not supported"

android - 为 android mips 编译 libcurl

cmake - ccmake 使用 cmake 版本 3.10

cmake - CMake链接到外部库