我关注了instructions关于如何在 iOS 项目上安装 OpenCV。但是,当使用 Xcode 7 时,我必须手动添加前缀 header 。不幸的是,这样做并没有帮助,我仍然遇到编译错误。然后我阅读了另一篇文章,建议最好手动添加导入,而不是在 Xcode 7 中使用前缀 header ,所以我这样做了。
这是我的代码:
#import "ViewController.h"
#import <opencv2/opencv.hpp>
#import <UIKit/UIKit.h>
#import <Foundation/Foundation.h>
#import <opencv2/highgui/cap_ios.h>
//using namespace cv;
@interface ViewController ()
{
IBOutlet UIImageView* imageView;
IBOutlet UIButton* button;
}
- (IBAction)actionStart:(id)sender;
@end
但是我仍然收到以下错误。
当我取消注释 using namespace cv;我得到以下信息:
我发现了一些复杂的解决方案,涉及将 header 暴露给 Swift 等。我只想让我的项目在 Xcode 7 上使用 Objective-C ...
最佳答案
OpenCV 是一个 C++
框架,这意味着任何使用 OpenCV 的代码都必须使用 C++
解释而不是 C
解释。
您看到的错误,例如带有 using namespace cv;
表示代码是使用 Objective-C 编译器编译的,而不是 Objective-C++ 编译器。
正如我在评论中提到的,实现这一点的最简单方法是确保任何 #include
为 opencv header 的文件都必须命名为例如ViewController.mm
,即它必须是一个Objective-C++文件。
或者,您可以通过在实用程序 Pane 中为文件类型显式选择 Objective-C++ Source
选项来选择和覆盖文件的 Type
。
关于c++ - Xcode 7 和 openCV(无 Swift): Core. hpp header 必须编译为 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35840688/