Because of other dependencies we need to build openCV with ndk r13b and the stl c++_shared. We build on mac OSX.
First we had to fix a small thing in android.toolchain.cmake since apparently some header path did change in the ndk 13. We changed this:
set( ANDROID_STL_INCLUDE_DIRS "${ANDROID_NDK}/sources/android/support/include" "${ANDROID_NDK}/sources/cxx-stl/llvm-libc++/libcxx/include" "${ANDROID_NDK}/sources/cxx-stl/llvm-libc++abi/libcxxabi/include" )
to:
set( ANDROID_STL_INCLUDE_DIRS "${ANDROID_NDK}/sources/android/support/include" "${ANDROID_NDK}/sources/cxx-stl/llvm-libc++/include" "${ANDROID_NDK}/sources/cxx-stl/llvm-libc++abi/include" )
Removed libcxxabi und libcxx from path.
We configure the build:
cmake_android_arm.sh -DANDROID_STL=c++_shared -DBUILD_SHARED_LIBS=YES -DCMAKE_BUILD_TYPE=RELEASE -DBUILD_ZLIB=ON -DANDROID_NATIVE_API_LEVEL=9
We also tried using a newer android version (21) but it results in the similar behaviour. Performing make results in the following error:
~/software/Android-NDK/ndk/sources/cxx-stl/llvm-libc++/include/cwctype:68:9: error: '::iswblank' has not been declared using ::iswblank;
Building with android version 21 results in a similar error somewhat later in the build:
~/software/Android-NDK/ndk/sources/cxx-stl/llvm-libc++/include/cmath:313:9: error: '::signbit' has not been declared using ::signbit;
When searching for the error we find some information that changing the math.h imports to cmath should fix the error. We tried this but hat no success in finding a way to make the build work.
What can we do to get the build to work? If more information is needed I am happy to provide it.