Android项目具有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
}
在运行项目时出现以下错误,该错误指出无法引用写入。虽然
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>());
在我看来,这似乎是链接错误。有什么主意为什么在运行应用程序时会引发上述错误?