Xcode开发openCV for iOS 时#include <list> not found

分析

在做混合编译之前一定要把编译器的Compile Sources As选项改为Objective C++。

默认的选项是According to file type,用这个的话,你后面每个不在交叉行列里的类都OK,一旦两种语言在一个文件中相互调用,

就会报错,而且报的错怪的很,比如:找不到new,找不到delete,等等。

iOS开发中在做人脸检测识别等图片处理时往往会用到opencv2.framework开源库,但从网上记录来看,使用该库时出现问题较多。

“list file not found”是经常出现的错误之一,

解决办法是: 如图对opencv for ios进行操作:

1.点击opencv项目target

2.点击“TARGETS”

3.进入“Build Settings”

4.修改“Apple LLVM compiler 4.2 - Language”中“Comlile Sources As”的值为“Objective-C++”

或者

1)把用到opencv的类的后缀从.m改为.mm
2)导入libc++.dylib库

报错:Apple Mach -O linker (

Showing All Messages

报错:Apple Mach -O Linker (ld: symbol(s) not found for architecture arm64)

添加静态库报错原因:
1.未导入框架
2.库路径 头文件路径不对  删除
3.Other Linker Flags 改为 -lz或-ObjC
4.找不到库  删除重新导入静态库
5.是否支持armv7 armv64 i386
6.导入静态库可能与原来库冲突 .pch文件 #ifdefine包裹所有头文件(忘了,不准确,具体解决方法百度)

解决:

#ifdef __cplusplus

#import <opencv2/opencv.hpp>

#endif

原文地址:https://www.cnblogs.com/CityPe/p/6178715.html