Xcode导入OpenCV2 编译报错:OpenCV 4.x+ requires enabled C++11 support

CocoaPods 安装OpenCV 4.0.1

 

使用部分类需要导入对应头文件;

#import

 

编译仍然报错

 

"OpenCV 4.x+ requires enabled C++11 support"

顾名思义:4.x版本以上的OpenCV需要启用C++ 11支持。

 

此时我暂且理解为:当前编译器不支持C++11,导致编译失败,报错如上。

 

百度出来一些答案:

工程文件 => Build Settings(All) =>  Apple LLVM 6.1 Language - C++

C++ Language Dialect: C++11 [-std=c++11]

C++ Standard Library: libc++ (LLVM C++ standard library with C++11 support)

https://blog.csdn.net/bemybest/article/details/48805429

 

MMP,还不行;

 

后来发现,我把应用了OpenCV2 4.0.0的类的实现文件(.m文件)后缀改成(.m)就特么可以了。

 

这是应该怀疑上面百度出来的方案是否有关系了;

我把C++11 [-std=c++11]改成GNU++11了,一样通过;

 

 

然后百度了下,C++11和GNU++11

原来是这样子的:

-std=c++11,支持C++11标准;

-std=gnu++11,支持C++11标准和GNU扩展特性;

也就是说,GNU更丰富些,没毛病,所以排除了Build Setting的那一步设置。

 

最后得出结论,就是我们要在哪里使用这个“基于C++写出来的OpenCV2(这里pod出来的是4.0.0版本)”库就在哪里改实现文件后缀为.mm,即:由原来的XXX.m改成XXX.mm

 

瞎扯一点:

我这里用到的宏、类、文件都在这里:#import

值得怀疑的是:是否大多数开发情况都是这样呢,导入这个头文件能解决大部分not foud问题呢。待验证

你可能感兴趣的:(iOS开发)