OpenCV在iPhone上构建错误

3

我正试图跟着这个教程:http://docs.opencv.org/doc/tutorials/ios/video_processing/video_processing.html

我按照步骤操作,但在viewController.h文件中,它告诉你在文件的顶部键入"using namespace cv;"。

Xcode将此视为错误。并且它不允许我构建。我该怎么办?

使用XCode 4.6.3,我无法确定我正在使用哪个版本的openCV,但我刚刚下载了最新版。此外,我知道我已导入了opencv框架。

以下是viewController.h中的代码行:

 #import <UIKit/UIKit.h>
 #import <opencv2/highgui/cap_ios.h>
 using namespace cv;

 @interface ViewController : UIViewController

 @property (weak, nonatomic) IBOutlet UIButton *button;
 @property (weak, nonatomic) IBOutlet UIImageView *imageView;

 - (IBAction)actionStart:(id)sender;

@end

1个回答

3
尝试将您的ViewController扩展名从.m更改为.mm。这向编译器表示您想要用Objective C++编写该代码段。
编辑:有关有效编写此方式的代码的其他信息,请查看此博客文章

源文件还是头文件? - user678392
1
只有源文件应该是mm。你可以尝试将using子句包装在#ifdef __cplusplus ... #endif块中吗?可能是ViewController.h被包含在不是mm的源文件中。 - Dany Joumaa
构建成功!谢谢!我注意到ViewController.h被导入到appDelegate.m文件中。这是导致问题的原因吗? - user678392
是的。Clang(编译器)适用于导致目标文件的源文件。包含文件基本上被插入到源文件中,由于clang在预处理指令处理后没有关于头文件的信息,因此没有办法让Objective C ++混乱发挥作用。出于这个原因,我们必须将使用子句包装在ifdef块中,以避免编译器错误。然而,将ViewController的源文件设置为“mm”文件的建议仍然有效。 - Dany Joumaa
顺便说一下,如果这确实解决了您的问题,我会感激您点个赞或打个勾 :) - Dany Joumaa

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接