NDK gnustl_static编译问题

当使用较新的NDK编译带OpenCV的工程时会遇到编译问题。

android undefined reference to 'std::basic_ostream >

有两种解决办法:

  • (1)在你的gradle中加入如下代码,这只对NDK 18rc以下的版本有效
        externalNativeBuild {
            cmake {
                cppFlags "-std=c++11"
                arguments "-DANDROID_STL=gnustl_static"
            }
        }
  • (2)对NDK 18rc以上的版本,gnustl_static已经不再支持,只能重新编译OpenCV
cd $OPENCV_SRC
mkdir build
cd build
cmake .. -DCMAKE_TOOLCHAIN_FILE=$ANDROID_DIR/ndk-bundle/build/cmake/android.toolchain.cmake -DANDROID_ABI="arm64-v8a" -DANDROID_STL=c++_static  -DCMAKE_BUILD_TYPE=Release -DANDROID_NATIVE_API_LEVEL=android-24 
make install
cd install #the sdk will be here...

你可能感兴趣的:(Android)