android上的cmake find_library无法使用自定义路径查找

Sun*_*ing 5 android cmake find

我无法使用cmake / android找到find_library,所以我编写了这个简单的测试。

find_library(log-lib log
  PATHS /Users/sam/Library/Android/sdk/ndk-bundle/platforms/android-21/arch-arm/usr/lib
  NO_DEFAULT_PATH)
Run Code Online (Sandbox Code Playgroud)

没关系。然后,我将该lib目录复制到另一个位置。

find_library(log-lib log
  PATHS /Users/sam/tmp/lib
  NO_DEFAULT_PATH)
Run Code Online (Sandbox Code Playgroud)

失败!我很确定已经复制了整个lib目录。

有任何想法吗?提前致谢。

oLe*_*Len 13

由于您是交叉编译,因此您必须告诉CMake它允许在工具链指定的其他地方使用库(在您的情况下,在 Android SDK 目录之外的其他地方)。

为此,您可以添加以下内容:

set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE BOTH)
Run Code Online (Sandbox Code Playgroud)

(在你的情况下,只有第一个是相关的)

更多信息在这里

  • 非常感谢 - 找到这个解决方案花了太长时间。我希望这被记录得更好! (3认同)