1、
OpenCV是用C和C++语言写的,这种类似cv::Mat都是C++的写法,然而.m文件是不支持C++的,这时候就需要我们把文件的后缀名改成.mm。改完编译就会发现错误消失。
2、在控制器里引用文件
紧接着第二个错误就出来了。
此时我们发现上部有一个warning
warning Detected Apple ‘NO’ macro definition, it can cause build conflicts. Please, include this header before any Apple headers.
OK,字面意思是让我们在引用这个头文件的时候应该放在所有Apple头文件之前
或者,我们可以自己建一个pch文件加入,引入需要的头文件
#ifdef __cplusplus
#import <opencv2/opencv.hpp>
#import <opencv2/imgproc/types_c.h>
#import <opencv2/core.hpp>
#import <opencv2/features2d.hpp>
#import <opencv2/calib3d.hpp>
#import <opencv2/objdetect.hpp>
#import <opencv2/highgui.hpp>
#import <opencv2/imgproc.hpp>
#import <opencv2/objdetect/objdetect.hpp>
#endif
再次编译,就没有错啦。