How do I support c++11 in Opencv 3 Android NDK -
can me, please?
i doing next changes support c++11 opencv 3 in android ndk:
i change app_stl := gnustl_static app_stl := c++_static
application.mk
app_stl := c++_static app_cppflags := -std=c++11 -frtti -fexceptions app_abi := armeabi armeabi-v7a mips x86 arm64-v8a x86_64 mips64 app_platform := android-14 # use select gcc instead of clang ndk_toolchain_version := 4.9
android.mk
local_path := $(call my-dir) local_path_lib_dir:=library/lib/classifier include $(clear_vars) opencv_camera_modules:=off opencv_install_modules:=on opencv_lib_type:=shared include ../../../opencv-android-sdk/sdk/native/jni/opencv.mk local_module:= detection_based_tracker local_src_files := detectionbasedtracker_jni.cpp \ library/jniutils.cpp \ ${ local_path_lib_dir}/logic.cpp \ ${ local_path_lib_dir}/logic2.cpp \ local_c_includes += $(local_path) local_ldlibs += -llog -ldl -lm -latomic -l$(local_path)/libs/armeabi - l$(local_path)/libs/armeabi-v7a -l$(local_path)/libs/mips -l$(local_path)/libs/x86 -l$(local_path)/libs/arm64-v8a -l$(local_path)/libs/mips64 -l$(local_path)/libs/x86_64 local_cppflags += -ljnigraphics -d_linux -dboost_has_pthreads -fexceptions -std=c++11 -i$(local_path)/ -i$(local_path)/library/lib/pico/ local_cpp_features := exceptions rtti app_optim := debug include $(build_shared_library)
when compile android app android ndk r10e. have next errores in log:
' [armeabi-v7a] sharedlibrary : libdetection_based_tracker.so /android/sdk/ndk-bundle/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64/bin/arm-linux-androideabi-g++ -wl,-soname,libdetection_based_tracker.so -shared --sysroot=/android/sdk/ndk-bundle/platforms/android-8/arch-arm ./obj/local/armeabi-v7a/objs/detection_based_tracker/detectionbasedtracker_jni.o ./obj/local/armeabi-v7a/objs/detection_based_tracker/detection-manager/jniutils.o ../../../opencv-android-sdk/sdk/native/jni/../3rdparty/libs/armeabi-v7a/liblibpng.a ../../../opencv-android-sdk/sdk/native/jni/../3rdparty/libs/armeabi-v7a/liblibtiff.a ../../../opencv-android-sdk/sdk/native/jni/../3rdparty/libs/armeabi-v7a/liblibjasper.a ../../../opencv-android-sdk/sdk/native/jni/../3rdparty/libs/armeabi-v7a/libilmimf.a ../../../opencv-android-sdk/sdk/native/jni/../3rdparty/libs/armeabi-v7a/libtbb.a /android/sdk/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/thumb/libc++_static.a -lgcc -no-canonical-prefixes -march=armv7-a -wl,--fix-cortex-a8 -wl,--no-undefined -wl,-z,noexecstack -wl,-z,relro -wl,-z,now -l/android/sdk/ndk-bundle/platforms/android-8/arch-arm/usr/lib -lz -ldl -lm -llog -llog -ldl -lm -latomic -ljni/libs/armeabi -ljni/libs/armeabi-v7a -ljni/libs/mips -ljni/libs/x86 -ljni/libs/arm64-v8a -ljni/libs/mips64 -ljni/libs/x86_64 -lc -lm -o ./obj/local/armeabi-v7a/libdetection_based_tracker.so jni/detection-manager/lib/pico/uniqueness2.cpp:240: error: undefined reference 'cv::descriptormatcher::match(cv::_inputarray const&, cv::_inputarray const&, std::__1::vector >&, cv::_inputarray const&) const' jni/detection-manager/lib/pico/motiondetector.cpp:77: error: undefined reference 'cv::subdiv2d::insert(std::__1::vector, std::__1::allocator > > const&)' jni/detection-manager/lib/counting-blobs/jniutils.cpp:995: error: undefined reference 'cv::imwrite(cv::string const&, cv::_inputarray const&, std::__1::vector > const&)' jni/detection-manager/lib/counting-blobs/jniutils.cpp:996: error: undefined reference 'cv::imwrite(cv::string const&, cv::_inputarray const&, std::__1::vector > const&)' jni/detection-manager/lib/counting-blobs/jniutils.cpp:1004: error: undefined reference 'cv::imwrite(cv::string const&, cv::_inputarray const&, std::__1::vector > const&)' jni/detection-manager/lib/counting-blobs/jniutils.cpp:1005: error: undefined reference 'cv::imwrite(cv::string const&, cv::_inputarray const&, std::__1::vector > const&)' jni/detection-manager/lib/counting-blobs/jniutils.cpp:1153: error: undefined reference 'cv::descriptormatcher::knnmatch(cv::_inputarray const&, cv::_inputarray const&, std::__1::vector >, std::__1::allocator > > >&, int, cv::_inputarray const&, bool) const' ../../../opencv-android-sdk/sdk/native/jni/../libs/armeabi-v7a/libopencv_objdetect.a(cascadedetect.cpp.o):cascadedetect.cpp:function cv::lbpevaluator::setwindow(cv::point_, int): error: undefined reference 'std::__throw_out_of_range(char const*)' ../../../opencv-android-sdk/sdk/native/jni/../libs/armeabi-v7a/libopencv_objdetect.a(cascadedetect.cpp.o):cascadedetect.cpp:function cv::haarevaluator::setwindow(cv::point_, int): error: undefined reference 'std::__throw_out_of_range(char const*)' ../../../opencv-android-sdk/sdk/native/jni/../libs/armeabi-v7a/libopencv_objdetect.a(cascadedetect.cpp.o):cascadedetect.cpp:function cv::haarevaluator::computechannels(int, cv::_inputarray const&): error: undefined reference 'std::__throw_out_of_range(char const*)' ../../../opencv-android-sdk/sdk/native/jni/../libs/armeabi-v7a/libopencv_objdetect.a(cascadedetect.cpp.o):cascadedetect.cpp:function cv::lbpevaluator::computechannels(int, cv::_inputarray const&): error: undefined reference 'std::__throw_out_of_range(char const*)' ../../../opencv-android-sdk/sdk/native/jni/../libs/armeabi-v7a/libopencv_objdetect.a(cascadedetect.cpp.o):cascadedetect.cpp:function std::vector >::resize(unsigned int, int): error: undefined reference 'std::__throw_length_error(char const*)' ../../../opencv-android-sdk/sdk/native/jni/../libs/armeabi-v7a/libopencv_objdetect.a(cascadedetect.cpp.o):cascadedetect.cpp:function std::vector >::resize(unsigned int, double): error: undefined reference 'std::__throw_length_error(char const*)' ../../../opencv-android-sdk/sdk/native/jni/../libs/armeabi-v7a/libopencv_objdetect.a(cascadedetect.cpp.o):cascadedetect.cpp:function std::vector >::reserve(unsigned int): error: undefined reference 'std::__throw_length_error(char const*)' ../../../opencv-android-sdk/sdk/native/jni/../libs/armeabi-v7a/libopencv_objdetect.a(cascadedetect.cpp.o):cascadedetect.cpp:function std::vector
::reserve(unsigned int): error: undefined reference 'std::__throw_length_error(char const*)'
../../../opencv-android-sdk/sdk/native/jni/../libs/armeabi-v7a/libopencv_flann.a(miniflann.cpp.o):miniflann.cpp:function cvflann::lshindex >::getneighbors(float const*, cvflann::resultset&): error: undefined reference 'std::__throw_bad_cast()' ../../../opencv-android-sdk/sdk/native/jni/../libs/armeabi-v7a/libopencv_flann.a(miniflann.cpp.o):miniflann.cpp:function cvflann::lshindex >::getneighbors(float const*, cvflann::resultset&): error: undefined reference 'std::cerr' ../../../opencv-android-sdk/sdk/native/jni/../libs/armeabi-v7a/libopencv_flann.a(miniflann.cpp.o):miniflann.cpp:function std::_rb_tree > >, std::_select1st > > >, std::less, std::allocator > > >
::_m_insert_unique_(std::_rb_tree_const_iterator > > , std::pair > > const&): error: undefined reference 'std::_rb_tree_increment(std::_rb_tree_node_base*)' ../../../opencv-android-sdk/sdk/native/jni/../libs/armeabi-v7a/libopencv_flann.a(miniflann.cpp.o):miniflann.cpp:function cvflann::autotunedindex >::buildindex(): error: undefined reference 'std::basic_ostringstream, std::allocator ::basic_ostringstream(std::_ios_openmode)' ../../../opencv-android-sdk/sdk/native/jni/../libs/armeabi-v7a/libopencv_flann.a(miniflann.cpp.o):miniflann.cpp:function cvflann::autotunedindex >::buildindex(): error: undefined reference 'std::basic_stringbuf, std::allocator >::str() const' . /android/sdk/ndk-bundle/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.9/../../../../arm-linux-androideabi/bin/ld: vtable symbol may undefined because class missing key function ../../../opencv-android-sdk/sdk/native/jni/../libs/armeabi-v7a/libopencv_flann.a(miniflann.cpp.o):miniflann.cpp:function cvflann::autotunedindex >::buildindex(): error: undefined reference 'vtable std::basic_stringbuf, std::allocator >'
/android/sdk/ndk-bundle/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.9/../../../../arm-linux-androideabi/bin/ld: vtable symbol may undefined because class missing key function ../../../opencv-android-sdk/sdk/native/jni/../libs/armeabi-v7a/libopencv_core.a(ocl.cpp.o):ocl.cpp:function std::basic_stringbuf, std::allocator >::~basic_stringbuf(): error: undefined reference 'vtable std::basic_streambuf >' /android/sdk/ndk-bundle/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.9/../../../../arm-linux-androideabi/bin/ld: vtable symbol may undefined because class missing key function ../../../opencv-android-sdk/sdk/native/jni/../libs/armeabi-v7a/libopencv_core.a(ocl.cpp.o):ocl.cpp:function std::basic_stringbuf, std::allocator >::~basic_stringbuf(): error: undefined reference 'std::locale::~locale()' ../../../opencv-android-sdk/sdk/native/jni/../libs/armeabi-v7a/libopencv_core.a(ocl.cpp.o):ocl.cpp:function std::basic_stringbuf, std::allocator >::~basic_stringbuf(): error: undefined reference 'std::string::_rep::_s_empty_rep_storage' ../../../opencv-android-sdk/sdk/native/jni/../libs/armeabi-v7a/libopencv_core.a(ocl.cpp.o):ocl.cpp:function std::basic_stringbuf, std::allocator >::~basic_stringbuf(): error: undefined reference 'vtable std::basic_stringbuf, std::allocator >' /android/sdk/ndk-bundle/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.9/../../../../arm-linux-androideabi/bin/ld: vtable symbol may undefined because class missing key function ../../../opencv-android-sdk/sdk/native/jni/../libs/armeabi-v7a/libopencv_core.a(ocl.cpp.o):ocl.cpp:function std::basic_stringbuf, std::allocator >::~basic_stringbuf(): error: undefined reference 'vtable std::basic_streambuf >' /android/sdk/ndk-bundle/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.9/../../../../arm-linux-androideabi/bin/ld: vtable symbol may undefined because class missing key function ../../../opencv-android-sdk/sdk/native/jni/../libs/armeabi-v7a/libopencv_core.a(ocl.cpp.o):ocl.cpp:function std::string cv::ocl::kertostr(cv::mat const&): error: undefined reference 'std::basic_ostringstream, std::allocator >::basic_ostringstream(std::_ios_openmode)' .
../../../opencv-android-sdk/sdk/native/jni/../libs/armeabi-v7a/libopencv_core.a(ocl.cpp.o):ocl.cpp:function cv::ocl::context::impl::setdefault(): error: undefined reference 'std::string::find(char const*, unsigned int, unsigned int) const' ../../../opencv-android-sdk/sdk/native/jni/../libs/armeabi-v7a/libopencv_core.a(ocl.cpp.o):ocl.cpp:function cv::ocl::context::impl::setdefault(): error: undefined reference 'std::string::_m_leak_hard()' ../../../opencv-android-sdk/sdk/native/jni/../libs/armeabi-v7a/libopencv_core.a(ocl.cpp.o):ocl.cpp:function cv::ocl::context::impl::setdefault(): error: undefined reference 'std::basic_string, std::allocator
::basic_string(char const*, std::allocator const&)' ../../../opencv-android-sdk/sdk/native/jni/../libs/armeabi-v7a/libopencv_core.a(ocl.cpp.o):ocl.cpp:function cv::ocl::context::impl::setdefault(): error: undefined reference 'std::basic_string, std::allocator ::basic_string(char const*, std::allocator const&)' ../../../opencv-android-sdk/sdk/native/jni/../libs/armeabi-v7a/libopencv_core.a(ocl.cpp.o):ocl.cpp:function cv::ocl::context::impl::setdefault(): error: undefined reference 'std::basic_string, std::allocator ::basic_string(char const*, std::allocator const&)' ../../../opencv-android-sdk/sdk/native/jni/../libs/armeabi-v7a/libopencv_core.a(ocl.cpp.o):ocl.cpp:function cv::ocl::context::impl::setdefault(): error: undefined reference 'std::string::_m_leak_hard()' ../../../opencv-android-sdk/sdk/native/jni/../libs/armeabi-v7a/libopencv_core.a(ocl.cpp.o):ocl.cpp:function cv::ocl::context::impl::setdefault(): error: undefined reference 'std::string::_m_leak_hard()' ../../../opencv-android-sdk/sdk/native/jni/../libs/armeabi-v7a/libopencv_core.a(ocl.cpp.o):ocl.cpp:function cv::ocl::context::impl::setdefault(): error: undefined reference 'std::string::_m_leak_hard()' ../../../opencv-android-sdk/sdk/native/jni/../libs/armeabi-v7a/libopencv_core.a(ocl.cpp.o):ocl.cpp:function cv::ocl::context::impl::setdefault(): error: undefined reference 'std::string::compare(char const*) const' ../../../opencv-android-sdk/sdk/native/jni/../libs/armeabi-v7a/libopencv_core.a(ocl.cpp.o):ocl.cpp:function cv::ocl::context::impl::setdefault(): error: undefined reference 'std::string::compare(char const*) const' ../../../opencv-android-sdk/sdk/native/jni/../libs/armeabi-v7a/libopencv_core.a(ocl.cpp.o):ocl.cpp:function cv::ocl::context::impl::setdefault(): error: undefined reference 'std::string::compare(char const*) const' ../../../opencv-android-sdk/sdk/native/jni/../libs/armeabi-v7a/libopencv_core.a(ocl.cpp.o):ocl.cpp:function cv::ocl::context::impl::setdefault(): error: undefined reference 'std::string::find(char const*, unsigned int, unsigned int) const' ../../../opencv-android-sdk/sdk/native/jni/../libs/armeabi-v7a/libopencv_core.a(ocl.cpp.o):ocl.cpp:function cv::ocl::context::impl::setdefault(): error: undefined reference 'std::string::compare(char const*) const' ../../../opencv-android-sdk/sdk/native/jni/../libs/armeabi-v7a/libopencv_core.a(ocl.cpp.o):ocl.cpp:function cv::ocl::context::impl::setdefault(): error: undefined reference 'std::basic_ostream >& std::endl >(std::basic_ostream >&)' ../../../opencv-android-sdk/sdk/native/jni/../libs/armeabi-v7a/libopencv_core.a(ocl.cpp.o):ocl.cpp:function cv::ocl::context::impl::setdefault(): error: undefined reference 'std::basic_ostream >& std::endl >(std::basic_ostream >&)' ../../../opencv-android-sdk/sdk/native/jni/../libs/armeabi-v7a/libopencv_core.a(ocl.cpp.o):ocl.cpp:function cv::ocl::context::impl::setdefault(): error: undefined reference 'std::basic_ostream >& std::endl >(std::basic_ostream >&)' ../../../opencv-android-sdk/sdk/native/jni/../libs/armeabi-v7a/libopencv_core.a(ocl.cpp.o):ocl.cpp:function cv::ocl::context::impl::setdefault(): error: undefined reference 'std::basic_ostream >& std::endl >(std::basic_ostream >&)' ../../../opencv-android-sdk/sdk/native/jni/../libs/armeabi-v7a/libopencv_core.a(ocl.cpp.o):ocl.cpp:function cv::ocl::context::impl::setdefault(): error: undefined reference 'std::string::assign(std::string const&)' ../../../opencv-android-sdk/sdk/native/jni/../libs/armeabi-v7a/libopencv_core.a(ocl.cpp.o):ocl.cpp:function cv::ocl::context::impl::setdefault(): error: undefined reference 'std::string::assign(std::string const&)' ../../../opencv-android-sdk/sdk/native/jni/../libs/armeabi-v7a/libopencv_core.a(ocl.cpp.o):ocl.cpp:function cv::ocl::openclbufferpoolimpl::_allocatebufferentry(cv::ocl::clbufferentry&, unsigned int): error: undefined reference 'std::__detail::_list_node_base::_m_hook(std::__detail::_list_node_base*)' ../../../opencv-android-sdk/sdk/native/jni/../3rdparty/libs/armeabi-v7a/libilmimf.a(half.cpp.o):half.cpp:function operator>>(std::istream&, half&): error: undefined reference 'std::istream& std::istream::_m_extract(float&)' ../../../opencv-android-sdk/sdk/native/jni/../3rdparty/libs/armeabi-v7a/libilmimf.a(imfchannellist.cpp.o):imfchannellist.cpp:function imf::channellist::operator[](char const*): error: undefined reference 'std::basic_stringstream, std::allocator >::basic_stringstream(std::_ios_openmode)' ../../../opencv-android-sdk/sdk/native/jni/../3rdparty/libs/armeabi-v7a/libilmimf.a(imfchannellist.cpp.o):imfchannellist.cpp:function imf::channellist::operator[](char const*): error: undefined reference 'std::basic_stringstream, std::allocator >::~basic_stringstream()' . ../../../opencv-android-sdk/sdk/native/jni/../3rdparty/libs/armeabi-v7a/libtbb.a(tbb_misc.cpp.o):tbb_misc.cpp:function tbb::internal::throw_exception_v4(tbb::internal::exception_id): error: undefined reference 'std::out_of_range::out_of_range(std::string const&)' ../../../opencv-android-sdk/sdk/native/jni/../3rdparty/libs/armeabi-v7a/libtbb.a(tbb_misc.cpp.o):tbb_misc.cpp:function tbb::internal::throw_exception_v4(tbb::internal::exception_id): error: undefined reference 'std::range_error::range_error(std::string const&)' ../../../opencv-android-sdk/sdk/native/jni/../3rdparty/libs/armeabi-v7a/libtbb.a(tbb_misc.cpp.o):tbb_misc.cpp:function tbb::internal::throw_exception_v4(tbb::internal::exception_id): error: undefined reference 'std::range_error::range_error(std::string const&)' ../../../opencv-android-sdk/sdk/native/jni/../3rdparty/libs/armeabi-v7a/libtbb.a(tbb_misc.cpp.o):tbb_misc.cpp:function tbb::internal::throw_exception_v4(tbb::internal::exception_id): error: undefined reference 'std::runtime_error::runtime_error(std::string const&)' ../../../opencv-android-sdk/sdk/native/jni/../3rdparty/libs/armeabi-v7a/libtbb.a(tbb_misc.cpp.o):tbb_misc.cpp:function tbb::internal::throw_exception_v4(tbb::internal::exception_id): error: undefined reference 'std::runtime_error::runtime_error(std::string const&)' ../../../opencv-android-sdk/sdk/native/jni/../3rdparty/libs/armeabi-v7a/libtbb.a(tbb_misc.cpp.o):tbb_misc.cpp:function tbb::internal::throw_exception_v4(tbb::internal::exception_id): error: undefined reference 'std::out_of_range::out_of_range(std::string const&)' ../../../opencv-android-sdk/sdk/native/jni/../3rdparty/libs/armeabi-v7a/libtbb.a(tbb_misc.cpp.o):tbb_misc.cpp:function tbb::internal::throw_exception_v4(tbb::internal::exception_id): error: undefined reference 'std::out_of_range::out_of_range(std::string const&)' ../../../opencv-android-sdk/sdk/native/jni/../3rdparty/libs/armeabi-v7a/libtbb.a(tbb_misc.cpp.o):tbb_misc.cpp:function tbb::internal::throw_exception_v4(tbb::internal::exception_id): error: undefined reference 'std::invalid_argument::invalid_argument(std::string const&)' ../../../opencv-android-sdk/sdk/native/jni/../3rdparty/libs/armeabi-v7a/libtbb.a(tbb_misc.cpp.o):tbb_misc.cpp:function tbb::internal::throw_exception_v4(tbb::internal::exception_id): error: undefined reference 'std::length_error::length_error(std::string const&)' ../../../opencv-android-sdk/sdk/native/jni/../3rdparty/libs/armeabi-v7a/libtbb.a(tbb_misc.cpp.o):tbb_misc.cpp:function tbb::internal::throw_exception_v4(tbb::internal::exception_id): error: undefined reference 'std::out_of_range::out_of_range(std::string const&)' collect2: error: ld returned 1 exit status make: *** [obj/local/armeabi-v7a/libdetection_based_tracker.so] error 1
Comments
Post a Comment