1、ndk 单独编译工具
cd ~/Android/Sdk/ndk-bundle/build/tools/
python make_standalone_toolchain.py --arch arm --api 24 --install-dir /home/hjimce/android-toolchain --stl=libc++
export PATH=$PATH:/home/hjimce/android-toolchain/bin
2、安装openblas
git clone https://github.com/xianyi/OpenBLAS.git
cd OpenBLAS
sudo make TARGET=ARMV7 HOSTCC=gcc CC=arm-linux-androideabi-gcc NOFORTRAN=1 install PREFIX=/usr/local
3、mxnet mxnet_predict-all.cc生成
export CC=arm-linux-androideabi-gcc
export CXX=arm-linux-androideabi-g++
git clone --recursive https://github.com/dmlc/mxnet.git
cd mxnet/amalgamation
修改amalgamation下的Makefile:
ifndef OPENBLAS_ROOT
export OPENBLAS_ROOT=/usr/local
endif
make ANDROID=1 MIN=1
生成mxnet_predict-all.cc文件,如果遇到找不到mxnet相关的src文件,直接注释掉,如果遇到找不到fopen64,那么在mxnet_predict-all.cc文件中加入:
#define fopen64 std::fopen
然后重新输入:
make ANDROID=1 MIN=1
4、即将生成两个文件,一个是链接库.so、另一个是mxnet_predict-all.cc,后续移植到手机的时候,只需要这两个其中的一个、还有一个头文件c_predict_api.h就可以了。
5、具体代码中的API调用可以参考我写的caffe 转mxnet博文。