Xcode4.6 中整合 zxing 库

On 2013 年 3 月 26 日, in iPhone, by donly

zxing(http://code.google.com/p/zxing/)是一个开源,支持多平台的 1d/2d 条形码扫描库。同类的应用有 zbar,zbar 支持生成条形码功能,使用简单,就是识别率没有 zxing 好。

准备

  1. zxing 源码:221.16 MiB
    • https://github.com/zxing/zxing
    • http://zxing.googlecode.com/svn/trunk/
  2. Xcode 4.6

整合到项目

  1. 首先,打开 “zxing/iphone/ZXingWidget/” ,将 ZXingWidget.xcodeproj 文件拖放到你的 Xcode 项目的 “Project navigator” 栏。勾选上 “Copy items”。
  2. 然后将 ZXingWidget 作为项目的目标依赖。
    zxing_dependence
  3. 接着将 ZXingWidget 静态库 (libZXingWidget.a) 连接到项目中。
    zxing_static_lib
  4. 顺便加上以下 framework:
    • AddressBook
    • AddressBookUI
    • AudioToolbox
    • AVFoundation
    • CoreMedia
    • CoreVideo
    • libiconv.dylib
  5. 最后配置 header search path,好让 Xcode 能够找到 ZXingWidget 的头文件。
    zxing_header_path

使用 zxing

只要导入 “ZXingWidgetController.h” 和 “QRCodeReader.h” 即可使用。具体请参考 zxing/iphone/ScanTest 中的例子。
需要注意的是使用 zxing 的文件必须使用 .mm 后缀名,因为他们使用了 zxing 这个 C++ 库。

错误原因

  1. 出现找不到头文件,请将用到 zxing 的源文件扩展名是否已经改成.mm。
  2. Undefined symbols for architecture armv7s 错误,请把 zxing 的一个 build target 参数:“Build Active Architecture Only” 修改成 “NO”。
  3. No such file or directory,请检查 header search path 路径是否正确。
  4. zxing 编译出错,请检查编译器配置是否正确。
    jxPvG

参考资料

Tagged with:  

发表评论

电子邮件地址不会被公开。 必填项已用*标注