闲来无事, 编译了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.youkuaiyun.com/download/www594025270/10410874