openCV的gnustl与android NDK中的dlib的c ++ _ shared冲突

Udi*_*jee 5 c++ android opencv android-ndk dlib

我正在尝试在NDK中集成OpenCVdlib-android。我能够同时在单独的项目中使用OpenCV和dlib,但是当两者都集成时,项目就会中断。

这是我对dlib的gradle配置

android {
compileSdkVersion 25
buildToolsVersion "25.0.3"
defaultConfig {
    ...
    externalNativeBuild {
        cmake {
            cppFlags "-std=c++11 -frtti -fexceptions"
            arguments "-DANDROID_PLATFORM=android-16",
                    "-DANDROID_TOOLCHAIN=clang",
                    "-DANDROID_STL=c++_shared",
                    "-DANDROID_CPP_FEATURES=rtti exceptions"
        }
    }
    sourceSets {
        main {
            jniLibs.srcDirs = ["src/main/jniLibs/dlib/libs"]
        }
    }
}
...
Run Code Online (Sandbox Code Playgroud)

当我集成openCV时,我得到

未定义引用'cv :: CascadeClassifier :: detectMultiScale'

根据此答案的解决方案是将stl作为gnustl_shared

dlib与gnustl_shared给出类似std::exceptions未找到的错误。

我该如何进行整合?

我试图c++_shared在CMake 上重新编译OpenCV ,但是遇到了

致命错误:iostream:没有这样的文件或目录#include