I am upgrading an Android JNI project from OpenCV 3.4.3 to 4.1.1.
When building an issue came out :
error: undefined reference to 'cv::dnn::dnn4_v20190621::Net::setInput(cv::_InputArray const&, std::string const&, double, cv::Scalar_ const&)'
Indeed when I look inside **libopencv_java4.so**, the name of the function is
void cv::dnn::dnn4_v20190621::Net::setInput(cv::InputArray, const cv::String &, double, const cv::Scalar &)
So the .so don't have the extras '_' characters : `_InputArray` vs `InputArray` and `Scalar_` vs `Scalar`
Any idea where the pb comes from ?
Others OpenCV modules seems okay but not the DNN module.
-------------
I am using CMake 3.6.0-rc2 on a Mac.
My CMakeLists.txt contains the following to link by target with the SHARED OpenCV Java library:
cmake_minimum_required(VERSION 3.6)
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include)
add_library(lib_opencv SHARED IMPORTED)
set_target_properties(lib_opencv PROPERTIES IMPORTED_LOCATION ${CMAKE_CURRENT_SOURCE_DIR}/../jniLibs/${ANDROID_ABI}/libopencv_java4.so
------------
Executable : /Users/renaud/Library/Android/sdk/cmake/3.6.4111459/bin/cmake
arguments :
-H/Users/renaud/Documents/DEV/android-imaging/src/main/jni
-B/Users/renaud/Documents/DEV/android-imaging/.externalNativeBuild/cmake/debug/armeabi-v7a
-DANDROID_ABI=armeabi-v7a
-DANDROID_PLATFORM=android-22
-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/Users/renaud/Documents/DEV/android-imaging/build/intermediates/cmake/debug/obj/armeabi-v7a
-DCMAKE_BUILD_TYPE=Debug
-DANDROID_NDK=/Users/renaud/Library/Android/sdk/ndk-bundle
-DCMAKE_CXX_FLAGS=-frtti -fexceptions -std=c++11
-DCMAKE_TOOLCHAIN_FILE=/Users/renaud/Library/Android/sdk/ndk-bundle/build/cmake/android.toolchain.cmake
-DCMAKE_MAKE_PROGRAM=/Users/renaud/Library/Android/sdk/cmake/3.6.4111459/bin/ninja
-GAndroid Gradle - Ninja
-DANDROID_STL=c++_shared
-DANDROID_STL=gnustl_shared
-DANDROID_ARM_NEON=TRUE
jvmArgs :
↧