Ubuntu16.04 编译 OpenBLAS for Android(更新版)
本文是https://blog.csdn.net/lj402159806/article/details/85691400这篇OpenBLAS编译部分的更新版
编译版本
-
OpenBLAS-0.3.6
-
ndk-r20
编译环境
首先需要安装sdk tools,然后通过sdkmanager安装cmake和ndk
mkdir sdk && cd sdk
#下载sdk tools
wget https://dl.google.com/android/repository/sdk-tools-linux-4333796.zip
#解压sdk tools
unzip sdk-tools-linux-4333796.zip
cd tools/bin
#查看sdk列表
./sdkmanager --list
#安装cmake和ndk
./sdkmanager "ndk-bundle"
编译OpenBLAS
ARMV7
cd $OPENBLAS_SOURCE
#将ndk目录加入环境变量
export NDK=${HOME}/Android/sdk/ndk-bundle
#将toolchain目录加入环境变量
export TOOLCHAIN=$NDK/toolchains/llvm/prebuilt/linux-x86_64
#编译ARMV7a环境静态库
make \
TARGET=ARMV7 \
ONLY_CBLAS=1 \
CC=$TOOLCHAIN/bin/armv7a-linux-androideabi21-clang \
AR=$TOOLCHAIN/bin/arm-linux-androideabi-ar \
HOSTCC=gcc \
ARM_SOFTFP_ABI=1 \
-j4
#安装静态库
make PREFIX=./android-openblas/armv7a install
ARMV8
cd $OPENBLAS_SOURCE
#将ndk目录加入环境变量
export NDK=${HOME}/Android/sdk/ndk-bundle
#将toolchain目录加入环境变量
export TOOLCHAIN=$NDK/toolchains/llvm/prebuilt/linux-x86_64
#编译ARMV8环境静态库
make \
TARGET=CORTEXA57 \
ONLY_CBLAS=1 \
CC=$TOOLCHAIN/bin/aarch64-linux-android21-clang \
AR=$TOOLCHAIN/bin/aarch64-linux-android-ar \
HOSTCC=gcc \
-j4
#安装静态库
make PREFIX=./android-openblas/arm64 install
编译完android-openblas目录下会有相应构架的头文件与库文件
参考
https://github.com/xianyi/OpenBLAS/issues/2005
https://github.com/xianyi/OpenBLAS/wiki/How-to-build-OpenBLAS-for-Android
https://developer.android.com/ndk/guides/other_build_systems
https://developer.android.com/ndk/guides/cmake