相关疑难解决方法(0)

将Xcode升级到4.5.2并将OpenCV升级到2.4.3后出现链接器错误

我的项目工作得很好,直到今天早上.我使用的是xcode 4.3,以及旧版本的OpenCV(我不确定确切的版本).OSX已经是10.7.x,但不是10.7.5

今天,在将OSX升级到10.7.5,xcode升级到4.5.2,以及下载OpenCV 2.4.3之后,我在尝试构建项目时遇到以下链接器错误:

架构armv7的未定义符号:
"_ OBJC_CLASS _ $ _ ALAssetsLibrary",引自:
opencv2中的objc-class-ref(cap_ios_video_camera.o)
"cv :: FeatureDetector :: create(std :: string const&)",引用自:
- [ImageAnalyzer在ImageAnalyzer.o中的detectBlobs:]
"cv :: FeatureDetector :: detect(cv :: Mat const&,std :: vector>&,cv :: Mat const&)const",引用自:
- ImageAnalyzer中的[ImageAnalyzer detectBlobs:]. o
ld:找不到架构armv7
clang的符号:错误:链接器命令失败,退出代码为1(使用-v查看调用)

为了使用新的opencv框架,我删除了对旧框架的引用,并将项目引用到从此处下载的官方预构建的opencv2.framework .
我还删除了对libz.dylib的引用,并添加了对libc ++.dylib的引用.
最后一步是将前缀文件更新为新框架.前缀文件中的相关部分现在如下所示:

#ifdef __cplusplus
#import <opencv2/opencv.hpp>
#endif
Run Code Online (Sandbox Code Playgroud)

这一切都缩小到这4个链接器错误我似乎无法摆脱.我尝试使用libstdc ++.dylib,但我得到了更多的错误.我也试图建立自己的OpenCV作为解释在这里,但我仍然得到同样的错误,预建框架.

我错过了什么?我的项目还需要改变什么吗?


更新:
正如所看到这里,设置"C++标准库"到"的libc ++(LLVM C++标准和C++ 11的支持libray"只产生一个错误:

clang:错误:-stdlib = libc ++的无效部署目标(需要iOS 5.0或更高版本)

将部署目标更改为iOS 5终于让我的项目再次运行.
这是否意味着OpenCV 2.4.3不适用于5岁以上的iOS版本?

xcode opencv linker-errors ios

5
推荐指数
2
解决办法
6759
查看次数

如何使用OpenCV解决iOS链接错误

我正在尝试将最新版本的openCV添加到我的iOS项目中,但是当我编译时,我得到大约30个链接错误:

例:

Undefined symbols for architecture i386:
"cv::merge(std::vector<cv::Mat, std::allocator<cv::Mat> > const&, cv::_OutputArray const&)", referenced from:
Run Code Online (Sandbox Code Playgroud)

我在一个带有简单视频捕获的虚拟应用程序中添加了OpenCV框架以及所有其他必需的框架(遵循链接中的教程),并且它工作得很好.

我不确定为什么它可以在一个地方如此顺利地工作,但不能在另一个地方工作.我唯一的想法是我在两个应用程序之间编译不同的架构,但我认为两者都是针对armv7和armv7s.

有什么可能导致链接错误的想法?

linker opencv ios

2
推荐指数
1
解决办法
4096
查看次数

标签 统计

ios ×2

opencv ×2

linker ×1

linker-errors ×1

xcode ×1