ios - opencv2.framework/opencv2(surf.o) 架构armv7的重复符号

标签 ios xcode opencv image-processing uiimage

我正在将 opencv2.framework 与我的项目集成。我执行了以下步骤来完成。

  1. 将 opencv2.framework 添加到“链接的框架和库”
  2. 将 libc++.dylib 添加到“链接的框架和库”
  3. 将以下代码添加到 AppName-Prefix.pch 文件

    #ifdef __cplusplus
    #import“opencv2/opencv.hpp”
    #endif

  4. 更改了编译器默认值 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适用于 iOS 的 OpenCV。

参见:使用lipo在 OpenCV 上为每个架构(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/

相关文章:

python - 在opencv中用拉普拉斯算子的方差计算模糊度

ios - 在 iOS swift 中音乐结束时播放下一首歌曲

objective-c - 在不启动模拟器的情况下在 Xcode 4 中运行逻辑测试

ios - 是否有必要从付费开发者帐户创建配置文件以在真实设备中测试应用程序?

OpenCV 如何转换矩阵元素

python - 使用 opencv、numpy 和 python 搜索图像中的像素

ios - 用户在 iOS 设备上向下滑动通知中心屏幕时意外调用 UIApplication.didBecomeActiveNotification 一次

ios - 如何将计时器移至后台线程

ios - 自定义 UITableViewCell 项目无法正确显示

iphone - dyld : Library not loaded:/System/Library/Frameworks/Accounts. 框架/账户