Ubuntu16.04 编译 OpenBLAS for Android(更新版)

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

发布了174 篇原创文章 · 获赞 119 · 访问量 55万+

猜你喜欢

转载自blog.csdn.net/lj402159806/article/details/91436075