我在我的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
我不知道问题出在哪里。任何帮助都会非常有帮助。谢谢..
答案 0 :(得分:0)
ZXing FAQ提到如果由于llvm中的错误而使用llvm(llvm-gcc或clang),则Release版本不能与4.2之前的Xcode一起使用。已经验证llvm-gcc和clang在Xcode 4.2及更高版本的发布模式下工作,至少使用ScanTest
和Barcodes
。我仍然看到了使用C ++的bug并且使用Xcode 4.2进行了操作,但它们似乎并没有影响ZXing,至少与ScanTest
和Barcodes
一样。
您提及的DEBUG
符号的行为在ScanTest
或Barcodes
上无法重复。这些项目都没有定义DEBUG
。由于在更多调试代码中定义DEBUG
编译,您可能仍然会看到优化错误。
您没有提及您正在构建的架构(armv6
或armv7
)。据报道,如果您不关闭Thumb模式,则armv6
优化问题。 ZXing的svn项目就是这样做的;这个变化还没有出现在任何ZXing版本中。