iOS 上的 OpenCV ZXing 不兼容

Posted

技术标签:

【中文标题】iOS 上的 OpenCV ZXing 不兼容【英文标题】:OpenCV ZXing incompatibility on iOS 【发布时间】:2012-11-21 17:17:06 【问题描述】:

我正在尝试在同一个项目中使用 ZXing 和 OpenCV。你不会认为这会是这样罕见的事情,但我想它是。我在两者之间遇到了一些严重的兼容性问题。我只能进口一个而没有另一个。

我从 OpenCV 开始,一切正常。程序按预期运行。然后我添加 ZXing,我得到大约 27 个编译器错误。有一个*** 问题可以解决这个here。所以我更改了我的 C++ 编译器设置以匹配这个问题的建议,它修复了 ZXing 问题,但随后打开了一组全新的错误。这些错误现在与 OpenCV 有关(见下文)。

编辑: 似乎取决于 C++ 编译器,它是一种或多种类型的交易。事实上,如果您将 c++ 标准库从 libc++ 更改为 libstdc++,您将得到一个工作而不是另一个工作。我无法同时获得两者

【问题讨论】:

【参考方案1】:

我找到了解决问题的方法。这最适用于在同一个项目中使用 zxing 和 opencv 的任何人。

    进入项目设置->目标->搜索c++ 一种。将 c++ 语言方言切换到编译器默认值 湾。将 C++ 标准库切换到 libc++ 转到 ZXingWidget.xcodeproj -> ZXingWidget -> 搜索 C++ 一种。将 c++ 语言方言切换到编译器默认值 湾。将 C++ 标准库切换到 libc++ 会出现编译器错误,提示 ZXing 无法编译为 libc++,因为它当前设置为支持 ios 4.3。再次进入 ZXing 小部件,将部署目标更改为 5.0(对不起大家仍然试图支持

这解决了我的问题。基本上发生的事情是 zxing 和 open cv 在不同版本的 c++ 上编译,这导致了一些奇怪的问题

编辑:作为参考,我使用的是 ZXing 2.1 和 OpenCV 2.4.3(问题时的最新版本)

【讨论】:

谢谢!我一直在兜圈子,试图让 OpenCV 和 ZXing 同时编译,这很有效。 很高兴它帮助了其他人!似乎只是一个奇怪的问题【参考方案2】:

实际上,我使用您的解决方案,但略有不同。在第2步,我将两者都更改为Complier Default,因为如果我使用您的建议,错误仍然存​​在。所以我检查了ZXingWidget.xcodeproj中的设置,发现它设置了两个Complier Default,所以我将我的项目设置更改为与ZXingWidget相同.xcodeproj。 不过多亏了你的提示,给了我很大的帮助!

【讨论】:

在我这样做的时候,我的解决方案没有任何错误。我认为这两个库都已更新,所以这可能是真的

以上是关于iOS 上的 OpenCV ZXing 不兼容的主要内容,如果未能解决你的问题,请参考以下文章

故事板上的 ZXing 图书馆

角度从 8 升级到 9 - 纱线不兼容错误

opencv调用nu-book/zxing-cpp识别二维码

Xamarin zxing 不要求在 IOS 上允许权限摄像头

iOS 上的 OpenCV 对象检测 (HOGDescriptor)

iOS 上的 OpenCV:二进制大小、加载时间、速度等。