我正在将opencv2.framework与我的项目集成。我完成了以下步骤。
将以下代码添加到AppName-Prefix.pch文件
#ifdef __cplusplus
#import “opencv2 / opencv.hpp”
#endif
更改了编译器默认值 Apple LLVM编译器4.2 - 语言 - > C ++语言方言 - > GNU ++ 11 [-std = gnu ++ 11] C ++标准库 - > libc ++(支持C ++ 11的LLVM C ++标准库)
我仍然收到链接错误
“opencv2.framework / opencv2(surf.o) ld:21个重复的符号,用于架构armv7“
有人可以帮我吗?
修改
我的XCode版本是4.6,IOS SDK是6.1,部署目标是4.3(我也测试了5.0,但也没有在该目标中工作)
答案 0 :(得分:2)
更新: github pull request修复此问题现已合并到OpenCV。
<强>原因:强> 在OpenCV source中,有两个名为1. surf.cpp和2. surf.ocl.cpp的文件,它们为opencv框架库中的每个体系结构生成两个surf.o目标文件。
<强>修正:强> 在OpenCV源代码中,从github pull request应用补丁 和Build OpenCV for iOS。
请参阅:在OpenCV上使用lipo为每个体系结构(armv7,armv7s和i386)提取单独的lib,然后使用ar -tv
查看两个相同大小的目标文件名字是surf.o
我不知道:只有一些XCode项目因预构建的OpenCV框架而失败。我在OpenCV 2.4.6.1中使用Xcode 5.0。可以通过一些XCode构建设置来解决这个问题吗?