1.  Opencv3.0: undefined reference to cv::imread(cv::String const&, int)

NDK 编译提示

undefined reference to cv::imread(cv::String const&, int)

原因 自opencv3.0之后,图像读取相关代码在imgcodes中。

添加宏定义可以解决

HAVE_OPENCV_IMGCODECS
HAVE_OPENCV_IMGPROC

具体可以看头文件;

#ifdef HAVE_OPENCV_IMGCODECS
#include "opencv2/imgcodecs.hpp"
#endif
#ifdef HAVE_OPENCV_IMGPROC
#include "opencv2/imgproc.hpp"
#endif

2.  opencv3.4.8  undefined reference to 'cv::imwrite

竟然是 ndk 版本问题,使用 Android sdk 中自带的 ndk-bundle , 不行。换成 android-ndk-r16b,通过。