【问题标题】:OpenCV ZXing incompatibility on iOSiOS 上的 OpenCV ZXing 不兼容
【发布时间】:2023-10-01 16:56:01
【问题描述】:

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

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

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

【问题讨论】:

    标签: ios opencv xcode4.5 zxing


    【解决方案1】:

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

    1. 进入项目设置->目标->搜索c++ 一种。将 c++ 语言方言切换到编译器默认值 湾。将 C++ 标准库切换到 libc++
    2. 转到 ZXingWidget.xcodeproj -> ZXingWidget -> 搜索 C++ 一种。将 c++ 语言方言切换到编译器默认值 湾。将 C++ 标准库切换到 libc++
    3. 会出现编译器错误,提示 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。 不过多亏了你的提示,给了我很大的帮助!

    【讨论】:

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