0

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

直到我在 Debug 模式下构建 Zxing 的项目,它可以完美地扫描 QR 码,但在 Release 模式下,应用程序无法扫描 QR Image 中的 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


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

4

1 回答 1

0

ZXing 常见问题解答提到,如果您使用 llvm(llvm-gcc 或 clang),由于 llvm 中的错误,发布版本不适用于 4.2 之前的 Xcode 。llvm-gcc 和 clang 都已经过验证,可以在 Xcode 4.2 及更高版本的 Release 模式下工作,至少在ScanTestand Barcodes. 我仍然看到 C++ 和 Xcode 4.2 的错误,但它们似乎并没有影响 ZXing,至少在ScanTestBarcodes.

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

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

于 2012-03-20T17:21:24.470 回答