Ios Xcode 8(Swift):core.hpp头必须编译为C++;
我正在一个项目中使用OpenCV iOS框架。我按照必要的步骤将框架包括到项目中 该项目是使用Swift 3编写的 我的一个包含应用程序核心功能的类是用Objective-C++编写的。我在我的网桥头文件中包含了类的头文件,但在尝试运行该项目时,出现以下错误: error core.hpp头必须编译为C++ 在在线等研究之后,提出的最常见的解决方案是创建一个包装器类,该类将导入到桥头中。然而,在遵循这一点之后,我面临着同样的问题 我的类的头文件如下所示:Ios Xcode 8(Swift):core.hpp头必须编译为C++;,ios,swift,xcode,opencv,Ios,Swift,Xcode,Opencv,我正在一个项目中使用OpenCV iOS框架。我按照必要的步骤将框架包括到项目中 该项目是使用Swift 3编写的 我的一个包含应用程序核心功能的类是用Objective-C++编写的。我在我的网桥头文件中包含了类的头文件,但在尝试运行该项目时,出现以下错误: error core.hpp头必须编译为C++ 在在线等研究之后,提出的最常见的解决方案是创建一个包装器类,该类将导入到桥头中。然而,在遵循这一点之后,我面临着同样的问题 我的类的头文件如下所示: #if TARGET_OS_IPHONE
#if TARGET_OS_IPHONE
#import <UIKit/UIKit.h>
#define IMAGE_CLASS UIImage
#elif TARGET_OS_MAC
#import <Cocoa/Cocoa.h>
#define IMAGE_CLASS NSImage
#endif
#import <AGGeometryKit/AGKQuad.h>
#import <stdio.h>
#import <opencv2/opencv.hpp>
#import <Foundation/Foundation.h>
typedef void (^DebugBlock)(cv::Mat current_image, std::string current_image_name);
@interface ImageScanner : NSObject
/**
* Singleton for access to the scanner.
*
* @return Shared scanner.
*/
+ (instancetype)sharedScanner;
#如果目标是IPHONE
#进口
#定义图像\u类UIImage
#elif TARGET_OS_MAC
#进口
#定义图像\u类NSImage
#恩迪夫
#进口
#进口
#进口
#进口
typedef void(^DebugBlock)(cv::Mat current_image,std::string current_image_name);
@接口ImageScanner:NSObject
/**
*用于访问扫描仪的单例。
*
*@return共享扫描程序。
*/
+(instancetype)共享扫描程序;
有人知道我可能遗漏了什么吗
提前谢谢你!
G.也有同样的问题。。通过在wrapperClass.mm文件中导入任何使用openCV的文件来解决此问题
桥接头文件编译为(目标-)C而不是C++。您只能从包装类的实现(.mm)文件中包含.hpp文件,而不能从.h文件中包含.hpp文件(因为这样它将间接从桥接头文件中包含)。请参阅您链接到的教程中的步骤6。@MartinR是的,但是如果我只在.mm文件中包含引用opencv的.h文件中的属性和方法,那么我如何才能声明它们?您不能。Swift和C++之间没有桥接。包装器必须公开纯C(或Objto-C)接口,并且只能在内部使用C++类。您是否知道我应该如何处理这个问题,因为这些方法对扫描仪的功能有重要意义?如果您想从OpenCV类继承,这将不起作用。必须编写另一个实现类。在SWIFT中使用C++类是非常麻烦的。