Iphone Zxing:QR代码扫描代码在Release版本中不起作用

时间:2012-03-20 09:58:01

标签: iphone camera zxing scanning

我在我的Iphone项目中集成了 Zxing 源代码,用于二维码扫描。

直到我在调试模式下构建Zxing的项目,它才能完美地扫描QR码,但在发布模式下,应用程序无法从QR图像中扫描QR码。

它只是停止扫描QR码而没有任何错误/异常。当我们在调试模式下恢复构建时,它再次完美扫描。

我使用下面提到的设置在发布模式下构建了Zxing的项目:

1.  XCode: 4.0.1    Compiler: GCC 4.2                   Optimization Level: -O0
2.  XCode: 4.0.1    Compiler: GCC 4.2                   Optimization Level: -Os
3.  XCode: 4.0.1    Compiler: LLVM GCC 4.2              Optimization Level: -O0
4.  XCode: 4.0.1    Compiler: LLVM GCC 4.2              Optimization Level: -Os
5.  XCode: 4.0.1    Compiler: LLVM compiler 2.0         Optimization Level: -O0
6.  XCode: 4.0.1    Compiler: LLVM compiler 2.0         Optimization Level: -Os
7.  XCode: 4.2      Compiler: LLVM GCC 4.2              Optimization Level: -O0
8.  XCode: 4.2      Compiler: LLVM GCC 4.2              Optimization Level: -Os
9.  XCode: 4.2      Compiler: Apple LLVM compiler 3.0   Optimization Level: -O0
10. XCode: 4.2      Compiler: Apple LLVM compiler 3.0   Optimization Level: -Os

我不知道问题出在哪里。任何帮助都会非常有帮助。谢谢..

1 个答案:

答案 0 :(得分:0)

ZXing FAQ提到如果由于llvm中的错误而使用llvm(llvm-gcc或clang),则Release版本不能与4.2之前的Xcode一起使用。已经验证llvm-gcc和clang在Xcode 4.2及更高版本的发布模式下工作,至少使用ScanTestBarcodes。我仍然看到了使用C ++的bug并且使用Xcode 4.2进行了操作,但它们似乎并没有影响ZXing,至少与ScanTestBarcodes一样。

您提及的DEBUG符号的行为在ScanTestBarcodes上无法重复。这些项目都没有定义DEBUG。由于在更多调试代码中定义DEBUG编译,您可能仍然会看到优化错误。

您没有提及您正在构建的架构(armv6armv7)。据报道,如果您不关闭Thumb模式,则armv6优化问题。 ZXing的svn项目就是这样做的;这个变化还没有出现在任何ZXing版本中。