Android NDK中编译Openblas库
来源:互联网 发布:完美日记化妆品知乎 编辑:程序博客网 时间:2024/06/06 16:38
1、下载安装并配置NDK环境
如已有该环境,跳过。
国内推荐在此下载:
http://www.androiddevtools.cn/
我用的是android-ndk-r14b-linux-x86_64.zip。
2、下载OpenBLAS并解压
https://github.com/xianyi/OpenBLAS
编译可参看
https://github.com/xianyi/OpenBLAS/wiki/How-to-build-OpenBLAS-for-Android
我用的是OpenBLAS-0.2.20
3、编译Openblas
1)打开终端设置环境变量:
export PATH=/home/xx/android-ndk-r14b/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin:$PATH
2)修正ndk路径
在以下文件中
OpenBLAS-0.2.20/interface/Makefile
OpenBLAS-0.2.20/driver/level2/Makefile
OpenBLAS-0.2.20/driver/level3/Makefile
OpenBLAS-0.2.20/driver/others/Makefile
OpenBLAS-0.2.20/kernel/Makefile
加入:
override CFLAGS += -I/home/xx/android-ndk-r14b/platforms/android-19/arch-arm/usr/include -I.
3)此时编译的话会遇到以下错误
/home/xx/android-ndk-r14b/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld: error: cannot open crtbegin_so.o: 没有那个文件或目录
/home/xx/android-ndk-r14b/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld: error: cannot open crtend_so.o: 没有那个文件或目录
/home/xx/android-ndk-r14b/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld: error: cannot open crtbegin_so.o: 没有那个文件或目录
/home/xx/android-ndk-r14b/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld: error: cannot open crtend_so.o: 没有那个文件或目录
collect2: error: ld returned 1 exit status
Makefile:140: recipe for target '../libopenblas_armv7p-r0.2.20.so' failed
make[1]: *** [../libopenblas_armv7p-r0.2.20.so] Error 1
make[1]: Leaving directory '/home/acrfid/can/OpenBLAS-0.2.20/exports'
Makefile:90: recipe for target 'shared' failed
make: *** [shared] Error 2
解决方式:
进入OpenBLAS-0.2.20/exports目录,输入以下指令:
ln -snf /home/xx/android-ndk-r14b/platforms/android-19/arch-arm/usr/lib/crtbegin_so.o ./
ln -snf /home/xx/android-ndk-r14b/platforms/android-19/arch-arm/usr/lib/crtend_so.o ./
ln -snf /home/xx/android-ndk-r14b/platforms/android-19/arch-arm/usr/lib/crtbegin_dynamic.o ./
ln -snf /homexx/android-ndk-r14b/platforms/android-19/arch-arm/usr/lib/crtend_android.o ./
4)编译
进入OpenBLAS-0.2.20目录,输入以下指令:
make TARGET=ARMV7 ARM_SOFTFP_ABI=1 HOSTCC=gcc CC=arm-linux-androideabi-gcc NOFORTRAN=1
成功后:
OpenBLAS build complete. (BLAS CBLAS)
OS ... Android
Architecture ... arm
BINARY ... 32bit
C compiler ... GCC (command line : arm-linux-androideabi-gcc)
Library Name ... libopenblas_armv7p-r0.2.20.a (Multi threaded; Max num-threads is 4)
To install the library, you can run "make PREFIX=/path/to/your/installation install".
安装
make PREFIX=/home/xx/OpenBLAS-0.2.20/install install
阅读全文
0 0
- Android NDK中编译Openblas库
- Openblas编译Android NDK库的步骤
- 编译OpenBLAS
- Android NDK中重新编译已有so库!
- android NDK 编译静态库
- NDK编译 Android库小记
- ubuntu中使用android ndk编译ffmpeg.
- android NDK编译中遇到atof错误
- Android Studio中编译Fresco,NDK安装
- Android studio中ndk的编译
- Windows下MSYS2中编译OpenBLAS过程记录
- OpenBlas编译方法
- OpenBlas编译方法
- Windows上OpenBlas编译
- android-ndk-r6b编译NDK
- android ndk 编译 openssl-android 库
- Android---NDK编译静态库失败
- NDK编译Android动态链接库
- 可变参数函数
- actionbar的各种坑
- 以此记录研究生学习点点滴滴
- 其他题目---从5随机到7随机及其扩展
- 高德地图
- Android NDK中编译Openblas库
- 背包九讲
- 阿里巴巴Java开发规约插件使用
- ARM_4412_按键中断
- 创建高性能的虚拟机
- gcc/g++ 实战之编译的四个过程
- 结合STM32CubeMX创建Orcad原理图器件库文件
- 雾计算和边缘计算的区别
- python-026