我正在将opencv2.framework与我的项目集成。我完成了以下步骤。
#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:架构armv7的21个重复符号
谁可以帮我这个事?
编辑:
我的XCode版本是4.6,IOS SDK是6.1,部署目标是4.3(我也用5.0进行了测试,但也不能在该目标中工作)
最佳答案
更新:修复此问题的 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)提取单独的库,然后使用ar -tv
查看名称为surf.o的两个大小相同的目标文件。
我不知道:只有某些XCode项目因预建的OpenCV框架而失败。我将Xcode 5.0与OpenCV 2.4.6.1一起使用。可以使用某些XCode构 build 置来解决此问题吗?
关于ios - opencv2.framework/opencv2(surf.o)体系结构armv7的重复符号,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16482218/