1
votes

opencv has been setup in my project but the imported c++ files are giving error

FAILURE: Build failed with an exception.
  • What went wrong: Execution failed for task ':app:externalNativeBuildDebug'.

Build command failed. Error while executing process C:\src\Android\Sdk\cmake\3.10.2.4988404\bin\ninja.exe with arguments {-C C:\Users\azad prajapat\AndroidStudioProjects\sunscape\sunscape\android\app.cxx\cmake\debug\armeabi-v7a native-panorama} ninja: Entering directory `C:\Users\azad prajapat\AndroidStudioProjects\sunscape\sunscape\android\app.cxx\cmake\debug\armeabi-v7a' [1/2] Building CXX object CMakeFiles/native-panorama.dir/src/main/jni/com_example_sunscape_NativePanorama.cpp.o FAILED: CMakeFiles/native-panorama.dir/src/main/jni/com_example_sunscape_NativePanorama.cpp.o C:\src\Android\Sdk\ndk\22.0.7026061\toolchains\llvm\prebuilt\windows-x86_64\bin\clang++.exe --target=armv7-none-linux-androideabi24 --gcc-toolchain=C:/src/Android/Sdk/ndk/22.0.7026061/toolchains/llvm/prebuilt/windows-x86_64 --sysroot=C:/src/Android/Sdk/ndk/22.0.7026061/toolchains/llvm/prebuilt/windows-x86_64/sysroot -Dnative_panorama_EXPORTS -I../../../../src/main/jniIncludes -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -march=armv7-a -mthumb -Wformat -Werror=format-security -std=gnu++11 -Wno-error=format-security -frtti -fexceptions -stdlib=libstdc++ -O0 -fPIC -MD -MT CMakeFiles/native-panorama.dir/src/main/jni/com_example_sunscape_NativePanorama.cpp.o -MF CMakeFiles\native-panorama.dir\src\main\jni\com_example_sunscape_NativePanorama.cpp.o.d -o CMakeFiles/native-panorama.dir/src/main/jni/com_example_sunscape_NativePanorama.cpp.o -c ../../../../src/main/jni/com_example_sunscape_NativePanorama.cpp In file included from ../../../../src/main/jni/com_example_sunscape_NativePanorama.cpp:3: In file included from ../../../../src/main/jniIncludes\opencv2/opencv.hpp:52: In file included from ../../../../src/main/jniIncludes\opencv2/core.hpp:52: **../../../../src/main/jniIncludes\opencv2/core/cvdef.h:183:10: fatal error: 'limits' file not found #include

1 error generated.** ninja: build stopped: subcommand failed.

my cmake file

    cmake_minimum_required(VERSION 3.4.1)
set(CMAKE_VERBOSE_MAKEFILE on)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libstdc++")
SET(CMAKE_EXE_LINKER_FLAGS  "-lopencv_stitching")
include_directories(${CMAKE_SOURCE_DIR}/src/main/jniIncludes)

add_library(native-panorama
            SHARED
        src/main/jni/com_example_sunscape_NativePanorama.cpp)
add_library(lib_opencv SHARED IMPORTED)
set_target_properties(lib_opencv PROPERTIES IMPORTED_LOCATION ${CMAKE_SOURCE_DIR}/src/main/libs/${ANDROID_ABI}/libopencv_java4.so)
find_library(log-lib
                log)
target_link_libraries(native-panorama ${log-lib} lib_opencv)

gradle file

externalNativeBuild {
            cmake {
                arguments "-DANDROID_TOOLCHAIN=clang++","-DANDROID_ARM_NEON=TRUE" ,"-DANDROID_STL_FORCE_FEATURES=OFF"
                cppFlags "-std=gnu++11", "-Wno-error=format-security","-frtti -fexceptions"
            }
        }
        ndk {
             abiFilters 'x86', 'x86_64', 'armeabi-v7a',
                    'arm64-v8a'
        }
1
Just a guess, limits.h is a c header, check that it exists in the standard include paths like /usr/include - Mansoor

1 Answers

0
votes

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libstdc++")

Don't do that.