我无法使用(最新的)openCV iOS 框架版本在 Xcode 5.0.2 中构建项目。我一直在尝试使用从 openCV sourceforge 页面下载的预构建框架。我按照 openCV 教程中的步骤将框架添加到 Xcode,我还尝试将 libc++.dylib 和/或 libstdc++.dylib 二进制文件添加到项目中。
我得到的错误是一个预处理/词法错误,说它找不到文件
<opencv2/opencv.hpp>
但在 Xcode 文件导航器中我确实可以看到它。如果我不 #include
opencv.hpp
当我尝试构建项目时,我遇到了大约 30 个链接器错误。关于如何让它工作的任何想法?我在这里看到了其他一些帖子,并且我尝试自己从源代码构建框架,但似乎没有什么能完全符合我的问题。
更新: 还要更清楚一点——我使用的是 Xcode 5.0.2,目标构建是适用于标准架构(armv7 和 armv7s)的 iOS 7.0。
C++ 编译器是 Apple LLVM 5.0,C++ 语言方言设置是“编译器默认值”,C++ 编译器设置是“libc++(支持 C++11 的 LLVM C++ 标准库)”
最佳答案
使用 opencv.org 上提供的预构建 iOS 框架很容易:
将 opencv2.framework 添加到您的项目中
在你项目的前缀头文件(.pch)中添加
#ifdef __cplusplus #import <opencv2/opencv.hpp> #endif
这将在所有 C++ 源文件中导入 OpenCV 的 header
- 开始在任何 C++ 源文件中使用 OpenCV。
我猜您正试图在 .m
文件中使用 OpenCV,默认情况下这些文件是 Objective-C(而非 C++)文件。由于适用于 iOS 的 OpenCV 框架是用 C++ 编写的,因此您只能在 C++ 源文件中使用它。
将 Objectice-C++ 文件添加到 Xcode 的最简单方法是将源文件的扩展名设置为 .mm
。
或者(只是为了记录)您可以在“文件检查器”中将文件类型更改为 Objective-C++ Source
或在目标的构建阶段添加-x objective-c++
编译器标志。
关于c++ - openCV 2.4.8 iOS 7.0 框架链接器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22153147/