3

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

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

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

4

2 回答 2

5

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

  1. 转到项目设置 -> 目标 -> 搜索 c++ a. 将 c++ 语言方言切换到编译器默认值 b。将 C++ 标准库切换到 libc++
  2. 转到 ZXingWidget.xcodeproj -> ZXingWidget -> 搜索 C++ a. 将 c++ 语言方言切换到编译器默认值 b。将 C++ 标准库切换到 libc++
  3. 会出现编译器错误,提示 ZXing 无法编译为 libc++,因为它当前设置为支持 iOS 4.3。再次进入 ZXing 小部件,并将部署目标更改为 5.0(对不起所有试图仍然支持 < 5 的人)

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

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

于 2012-11-21T19:05:35.287 回答
0

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

于 2013-06-28T07:52:33.320 回答