【问题标题】:BLAS library dpendency issues with Android Studio 3.0Android Studio 3.0 的 BLAS 库依赖问题
【发布时间】:2017-10-15 09:32:44
【问题描述】:

我正在使用调用 Blaze 库 (https://bitbucket.org/blaze-lib/blaze) 中的函数的本机 c++ 代码构建一个 android 应用程序(针对 ARMv8)。

为了与 blaze 库有接口,我在 app 目录下的 CMakeLists.txt 中添加了以下代码:

set( blaze_src_DIR ../../../lib_source/blaze )
set( blaze_build_DIR ../../../lib_source/blaze/outputs )
file(MAKE_DIRECTORY ${blaze_build_DIR})
add_subdirectory(${blaze_src_DIR} ${blaze_build_DIR} )

find_package( blaze )
if( blaze_FOUND )
   add_library( blaze_target INTERFACE )
  target_link_libraries( blaze_target INTERFACE blaze::blaze )
  message(STATUS "Added blaze library")
else()
  message(STATUS "Still Could not add blaze library")
endif()

lib_source/blaze 确实包含 CMakeLists.txt,我按照 blaze 安装指南本身的说明进行操作

现在问题在于 gradle 同步。 cmake 尝试使用 FindBLAS.cmake 模块查找 BLAS 库,这会给出致命错误:未找到带有 BLAS API 的库。请指定图书馆位置。

我尝试安装几个 BLAS 库,但没有任何帮助。 ATLAS 不附带 cmake,opeBLAS 有 cmake 但需要 gfortran 来编译它。这将需要 ndk-bundle 工具链来支持 gfortran。我找到了这个链接来获取这些:https://www.bountysource.com/issues/48354321-how-to-link-openblas-for-armv7-by-cmake-in-android-studio

上述过程非常繁琐且漫长。我的问题是:在有或没有 BLAS 支持的情况下,让 Blaze 库工作的更简单的方法是什么(在我的设置中)?有我可以使用的预建库吗?如果是,请描述程序。

我找到了一些有用的链接,但无法找到解决问题的确切方法:

  1. [sourceforge.net/projects/openblas/files/v0.2.8-arm/]
  2. [github.com/xianyi/OpenBLAS/wiki/How-to-build-OpenBLAS-for-Android]
  3. [jcsilva.github.io/2017/03/18/compile-kaldi-android/]

提前致谢。

【问题讨论】:

标签: android c++ cmake android-ndk blas


【解决方案1】:

如果您不是特别依赖 OpenBLAS 或 ATLAS,那么您可以在此 repo 的 release section 中找到一些预构建的 BLAS 库:https://github.com/jeti/android_ipopt

【讨论】:

    猜你喜欢
    • 2018-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-09
    • 1970-01-01
    • 1970-01-01
    • 2015-03-11
    相关资源
    最近更新 更多