最近在做Android Studio做NDK开发,编译时出现了报错
……
../../../../src/main/jniLibs/armeabi-v7a/libcaffe2.a(compiler.cc.o):compiler.cc:function std::_Sp_counted_ptr_inplace<std::string, std::allocator<std::string>,
……
根据日志可以知道,是编译C++的时候出现了报错,导致找不到生成的.so文件,查看日志发现了一个问题,日志里很多地方都提示“找不到函数std::***”,推测可能问题和std有关。
通过查找资料和询问技术大佬,最终找到了原因,我使用的NDK版本是Android Studio
里通过SDK Manager安装的最新版,版本号是r17.0.4,问题就出现在这里了,尝试更换r16b版本的NDK重新编译代码,编译通过。
问题总结:
NDK的兼容方向似乎有些奇怪,在做NDK开发时尽量不要选择过新版本的NDK,使用稳定版本是一个绝佳的选择。
近期评论