В Android Project, с которым я сталкиваюсь, есть OpenCV и пользовательская реализация некоторых классов cpp для обработки изображений.Я включаю opencv-3-3-0-android-sdk
в CMakeLists.txt
, который используется для создания собственных компонентов.
include_directories( ../opencv-3-3-0-android-sdk/sdk/native/jni/include/)
add_library( lib_opencv
SHARED
IMPORTED )
set_target_properties( lib_opencv
PROPERTIES IMPORTED_LOCATION
${PROJECT_SOURCE_DIR}/../opencv-3-3-0-android-sdk/sdk/native/libs/${ANDROID_ABI}/libopencv_java3.so )
При вызове следующего метода выдает ошибку:
void saveMat(const cv::Mat& mat, std::string dst){
cv::imwrite(dst, mat);//throws error - undefined reference
}
Получение следующей ошибки при запускепроект, который утверждает, что не может ссылаться на imwrite.Хотя
error: undefined reference to 'cv::imwrite(cv::String const&, cv::_InputArray const&, std::__ndk1::vector<int, std::__ndk1::allocator<int> > const&)'.
Хотя при переходе к этой функции использование ctrl приводит меня к правильной функции, которая находится внутри opencv2/imgcodecs.hpp
.
CV_EXPORTS_W bool imwrite( const String& filename, InputArray img,
const std::vector<int>& params = std::vector<int>());
Мне это кажется ошибкой связывания.Есть ли идея, почему при запуске приложения выдает вышеупомянутую ошибку?