ubuntu16.04 openblas库安卓arm64-v8a编译

闲来无事, 编译了openblas库, x86 armeabi-v7a 等版本编译就不说了 按照官方给的文档即可

以下是我编译arm64-v8a

步骤 希望会帮助大家

1.下载android ndk

我下载的是r16b的 ndk 

链接:https://dl.google.com/android/repository/android-ndk-r16b-linux-x86_64.zip

2.下载 openblas

链接:https://github.com/xianyi/OpenBLAS.git

3.安装 gfortran 

sudo apt-get install gfortran

4.使用ndk自带脚本生成单独toolchain 

../android-ndk-r16b/build/tools/make_standalone_toolchain.py  --arch arm64 --api 21 --stl=libc++ --install-dir /tmp/my-android-toolchain

5.设置toolchain环境变量

export ANDROID_TOOLCHAIN_PATH=/tmp/my-android-toolchain


6.将toolchain的bin目录加入到PATH系统环境变量

export PATH=${ANDROID_TOOLCHAIN_PATH}/bin:$PATH

7.设置CLANG_FLAGS环境变量

export CLANG_FLAGS="-target aarch64-none-linux-android -marm  --sysroot ${ANDROID_TOOLCHAIN_PATH}/sysroot -gcc-toolchain ${ANDROID_TOOLCHAIN_PATH}"


8.编译armv8目标

 make TARGET=armv8 BINARY=64 HOSTCC=gcc CC=aarch64-linux-android-gcc NOFORTRAN=1

编译成功之后显示如下:

 OpenBLAS build complete. (BLAS CBLAS)
  OS               ... Android
  Architecture     ... arm64
  BINARY           ... 64bit
  C compiler       ... GCC  (command line : aarch64-linux-android-gcc)
  Library Name     ... libopenblas_armv8p-r0.3.0.dev.a (Multi threaded; Max num-threads is 8)


To install the library, you can run "make PREFIX=/path/to/your/installation install".

中间有许多坑 还有参数作用可在ndk官方网站上查询

https://developer.android.google.cn/ndk/guides/standalone_toolchain


博客临时起兴写的,如果有问题以后会慢慢修改。

我编译好的库可在此链接下载

https://download.csdn.net/download/www594025270/10410874




你可能感兴趣的:(Android,移植,openblas,arm64-v8a,android,机器学习)