我在Ubuntu 14.04 64位桌面上使用android NDK独立工具链编译mxnet(v0.9.3),但遇到了一些错误。
第一个错误是:
arm-linux-androideabi-g++ -std=c++11 -Wall -O3 -msse2 -Wno-unknown-pragmas -funroll-loops -Iinclude -fPIC -M -MT nnvm.o \
-I `pwd`/../ -I `pwd`/../include \
-D__MIN__=0 nnvm.cc > nnvm.d
arm-linux-androideabi-g++: error: unrecognized command line option '-msse2'
当我删除'-msse2'选项并再次运行makefile时,它可以编译更多但后来我遇到了类似的新错误:
jni/../mxnet_predict-all.cc:2801:37: error: 'fopen64' was not declared in this scope
jni/../mxnet_predict-all.cc:21495:14: error: 'stoi' is not a member of 'std'
jni/../mxnet_predict-all.cc:30077:52: error: 'to_string' is not a member of 'std'
jni/../mxnet_predict-all.cc:34298:29: error: 'stof' is not a member of 'std'
jni/../mxnet_predict-all.cc:41383:56: error: 'stod' is not a member of 'std'
……
我该怎么做才能解决这些问题?
顺便说一句:
我的android-ndk版本是android-ndk-r13b。
要创建独立工具链,我按照以下步骤操作:
$ python NDK/build/tools/make_standalone_toolchain.py --arch arm --api 21 --install-dir /tmp/my-android-toolchain
export PATH=$PATH:/tmp/my-android-toolchain/bin
export CXX=arm-linux-androideabi-g++
export CC=arm-linux-androideabi-gcc
我的mxnet_predict-all.cc的#includes:
#if defined(__MACH__)
#include
#include
#endif
#if !defined(__WIN32__)
#include
#include
#if !defined(__ANDROID__) && (!defined(MSHADOW_USE_SSE) || MSHADOW_USE_SSE == 1)
#include
#endif
#endif
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include