1、配置Android NDK编译工具。
以下下载地址,直接放到浏览器中下载,不需要VPN
linux 32 bit
http://dl.google.com/android/ndk/android-ndk-r10d-linux-x86.bin
linux 64 bit
http://dl.google.com/android/ndk/android-ndk-r10d-linux-x86_64.bin

Windows 32 bit
http://dl.google.com/android/ndk/android-ndk-r10d-windows-x86.exe
64 bit
http://dl.google.com/android/ndk/android-ndk-r10d-windows-x86_64.exe

Mac OS X 32 bit
http://dl.google.com/android/ndk/android-ndk-r10d-darwin-x86.bin
64 bit
http://dl.google.com/android/ndk/android-ndk-r10d-darwin-x86_64.bin
安装方法:
请确保你已安装了Android SDK
Linux 与Mac OS X (Darwin):
打开终端,进入到你下载包所在的目录
执行chmod a+x 下载包名, 使其可执行,然后执行安装包就行
比如:
ndk$ chmod a+x android-ndk-r10c-darwin-x86_64.bin
ndk$ ./android-ndk-r10c-darwin-x86_64.bin

windows安装相对容易,直接双击安装包

假设解压出来的目录在/usr/local/android-ndk-r10下

配置环境变量:
export NDK=/usr/local/android-ndk-r10
export PATH=$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86/bin:$PATH

2、下载Openblas源代码:
下载路径:https://sourceforge.net/projects/openblas/files/

下载源代码版本:openblas_0.2.18.orig.tar.gz 和 openblas_0.2.18-1.dsc

将压缩代码文件解压到目标路径。

3、编译Openblas的Android库文件。
编译指导:
https://github.com/xianyi/OpenBLAS/wiki/How-to-build-OpenBLAS-for-Android

a. 打开终端

b. 设置环境变量:
export SYSROOT=\$NDK/platforms/android-19/arch-arm
export CC="$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc --sysroot=$SYSROOT"

c. 执行编译命令:
make TARGET=ARMV7 HOSTCC=gcc CC=arm-linux-androideabi-gcc NOFORTRAN=1

d. 编译问题:
sys/cdefs.h头文件找不到问题。
In file included from getarch.c:80:0:
/usr/local/android-ndk-r10/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86/lib/gcc/arm-linux-androideabi/4.8/include-fixed/stdio.h:50:23: fatal error: sys/cdefs.h: No such file or directory
#include <sys/cdefs.h>

DIT re: the latest question revision:
The real question is - why is the compiler looking for header files under toolchains\arm-linux-androideabi-4.6\prebuilt\windows\lib\gcc\arm-linux-androideabi\4.6.x-google\include-fixed, when they are really at platforms\android-9\arch-arm\usr\include? Is there a rogue -I option somewhere? The include folder under toolchains, that the OP is having trouble with, looks crippled; it's probably an artifact of the GCC distribution. The real NDK header folder is elsewhere.

e. 修改文件路径:
\interface\Makefile
\driver\level2\Makefile
\driver\level3\Makefile
\driver\others\Makefile
\kernel\Makefile

f. 修改内容:
override CFLAGS += -I/usr/local/android-ndk-r10/platforms/android-19/arch-arm/usr/include -I.

g. 继续执行编译
make TARGET=ARMV7 HOSTCC=gcc CC=arm-linux-androideabi-gcc NOFORTRAN=1

h. 执行完成,打包库。
OpenBLAS build complete. (BLAS CBLAS)

OS ... Android
Architecture ... arm
BINARY ... 32bit
C compiler ... GCC (command line : arm-linux-androideabi-gcc)
Library Name ... libopenblas_armv7-r0.2.18.a (Single threaded)

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

执行命令打包库文件。
make PREFIX=/home/zoufeng/openblas install

Openblas编译Android NDK库的步骤的更多相关文章

  1. ffmpeg学习笔记-Linux下编译Android动态库

    Android平台要使用ffmpeg就需要编译生成动态库,这里采用Ubuntu编译Android动态库 文件准备 要编译生成Android需要以下文件 NDK ffmpeg源代码 NDK下载 NDK可 ...

  2. Linux命令行下编译Android NDK的示例代码

    这几天琢磨写一个Android的Runtime用来加速HTML5 Canvas,让GameBuilder+CanTK 不但开发速度快,运行速度也能接近原生应用.所以花了点时间研究 Android ND ...

  3. 在linux环境下编译android so库

    (1) 配置Android NDK环境 (2) mk文件编写 LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) # OpenCV OPENCV_CA ...

  4. mac系统下命令编译android ndk项目

    1.设置ndk环境变量 2.构造android ndk项目,命令:ndk-build 3.使用ant构造android sdk项目:命令:android update project -p . -n ...

  5. (转载)反编译android的apk文件步骤

    下面的方法我已经尝试过,完全可以成功,重点的步骤我在这里说一下 1.必须要有java环境,记得配置好环境变量 2.如果只查看class中的函数文件,只需要下载dex2jar和jd-gui 3.下载地址 ...

  6. 手动写Makefile编译Android NDK的so

    之所以摒弃NDK,是因为NDK编译出来的so太大,而且导出表总有一些没用的符号.而且手动编译的话,可以得到编译过程中间的.i和.s文件,可以删除一些没用的汇编代码.现在代码列出来:我的NDK C的代码 ...

  7. [原]编译Android源码过程中遇到的问题

    编译Android源码的过程参考Android官网介绍: 1.下载Android源码的步骤:https://source.android.com/source/downloading.html 2.编 ...

  8. Android NDK 交叉编译C++代码生成.so共享库详细步骤

    Android NDK 交叉编译C++代码生成.so共享库详细步骤 Android NDK 调用c++ stl 模板库(修改android.mk文件) 1  在需要调用模板库的文件前包含头文件:   ...

  9. protobuf使用NDK编译Android的静态库(工作记录)

    1.protobuf 编译过程 前提: 确保自己电脑上已经安装了cygwin + ndk, 并且NDK能够编译hello-jni成功 1.1 把protobuf 压缩包解压到protobuf文件夹下 ...

随机推荐

  1. 你真的有必要退出吗——再说Android程序的退出功能

    转自你真的有必要退出吗--再说Android程序的退出功能 搞Android开发有一段时间了,相信很多从Windows开发过来的Android程序员都习惯性地会跟我一样遇到过同一个问题:如何彻底退出程 ...

  2. 【 UVALive - 2197】Paint the Roads(上下界费用流)

    Description In a country there are n cities connected by m one way roads. You can paint any of these ...

  3. Condition 的使用

    Condition 将 Object 监视器方法(wait.notify 和 notifyAll)分解成截然不同的对象,以便通过将这些对象与任意 Lock 实现组合使用,为每个对象提供多个等待 set ...

  4. 数据结构(并查集||树链剖分):HEOI 2016 tree

    [注意事项] 为了体现增强版,题目限制和数据范围有所增强: 时间限制:1.5s 内存限制:128MB 对于15% 的数据,1<=N,Q<=1000. 对于35% 的数据,1<=N,Q ...

  5. Delphi 6 Web Services初步评估之二(转)

    Delphi 6 Web Services初步评估之二(转)   ★ 测试环境:CPU:PIII 550内存: 256MBOS: Windows2000 Server + SP2Web Server: ...

  6. 使用LoadRunner对Web Services进行调用--Import Soap

    利用LoadRunner对Web Services进行测试时,通常有三种可供采用的方法: 在LoadRunner的Web Services虚拟用户协议中,[Add Service Call] 在Loa ...

  7. 乐视手机1S正式发售,乐视商城官网抽风遭网友吐槽

    乐视手机1S正式发售,乐视商城官网抽风遭网友吐槽 10月27日,乐视召开的新品发布会上正式推出千元金属新机乐1s,售价1099元.今天11月3日上午10:00,乐1s在乐视商城.京东商城首发开卖,现货 ...

  8. Traffic Lights - SGU 103(最短路)

    题目大意:有一个城市的路线图,有N个交叉点,每两个交叉点之间只有一条路,现在想从交点u去交点v,不过这个路的交通比较特别,每个路都有一个交通灯,灯有两种颜色,蓝色和紫色,例如一条路线在交点s,t之间, ...

  9. c#基础编程—泛型

    一.引言 泛型的主要思想是将算法与数据结构完全分离开,使得一次定义的算法能作用于多种数据结构,从而实现高度可重用的开发.泛型,通过参数类型化来实现在同一份代码中操作多种数据类型,利用“参数化类型”将类 ...

  10. 获取windows系统信息

    在应用程序中,有时需要在界面中显示计算机的硬件信息和进程信息.在.Net中提供了可以查询信息的类.Management类,在程序中添加应用后进行使用. 1 属性 类似的属性介绍可见下面: 属性介绍 根 ...