iOS上的OpenCV ZXing不兼容

时间:2012-11-21 17:17:06

标签: ios opencv xcode4.5 zxing

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

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

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

2 个答案:

答案 0 :(得分:5)

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

  1. 转到项目设置 - >目标 - >搜索c ++ 一个。将c ++语言方言切换为编译器默认值 湾将C ++标准库切换为libc ++
  2. 转到ZXingWidget.xcodeproj - > ZXingWidget - >搜索C ++ 一个。将c ++语言方言切换为编译器默认值 湾将C ++标准库切换为libc ++
  3. 将会出现编译错误,说ZXing无法编译为libc ++,因为它目前设置为支持iOS 4.3。再次进入ZXing小部件,并将部署目标更改为5.0(抱歉所有人仍然支持< 5)
  4. 这解决了我的问题。基本上发生的事情是zxing和open cv正在编译不同版本的c ++,这引起了一些奇怪的问题

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

答案 1 :(得分:0)

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