编译 ZXing

  第一步:准备包

  http://code.google.com/p/zxing/ 下载

  编译zxing

  下载ant 地址http://ant.apache.org/

  下载proguard 地址http://proguard.sourceforge.net/index.html#/downloads.html

  解压:zxing-1.6

  目录结构下:

  zxing-1.6

  -android

  android-integration

  core

  build.properties

  build.xml

  ........

  第二步:配置环境变量。

  打开build.properties

  修改proguard 为你下载的proguard下的lib文件夹下的proguard.jar指向

  android-home你的 sdk目录

  proguard-jar=../proguard4.5.1/lib/proguard.jar 版本为4.4以上

  android-home=../Android/android-sdk-windows

  配置ant环境变量

  ANT_HOME

  E:MyLiBjavaANTapache-ant-1.8.1

  PATH

  E:MyLiBjavaANTapache-ant-1.8.1in

  cmd 中ant回车出现

  Buildfile: build.xml does not exist!

  Build failed

  表现成功!

  第三步:开始编译

cd 到core目录 然后ant!

  BUILD SUCCESSFUL

  Total time: * second

  表示成功编译!

  然后编译android

  cd ../android

  ant

  好了!有了核心包后我们可以就可以导入到项目工程里去了,现在是不是就不报错了!而且还可以直接运行的


  ZXingTestActivity为其zxing运用的例子,这是学习zxing的一个很好的帮助!这个例子运行前提也是必需先安装BarcodeScanner3.5.apk

  android 目录则是前篇我博客讲调用时必需安装的一个组件BarcodeScanner3.5.apk的源码。呵呵,我想大家就知道了,对了,

  想不安装我们可以直接在源码上进行修改并进行编译,就ok了。

  希望我的这几篇文章可以给大家有些帮助,也算引个方向,最后更深入学习代码,就只能看自己了!

  大家肯定比我聪明,会很快读懂源码并很快应用起来,如有什么问题希望大家一起探讨学习,不断进步!


  官网引用详细参见:

  # Download and install the latest public Android SDK.

  # Edit build.properties at the top level of the project, and change the android-home property to point to the SDK install location

  # Download Proguard, version 4.4 minimum, and install it where you like.

  # Edit build.properties and set proguard-jar to the full path (including the filename) of the ProGuard library.

  # Build core; Note that core must be built without debug symbols to avoid an incompatibility between proguard and the Android tool chain:

  cd core

  ant clean build-no-debug

  # Build android:

  cd ../android

  ant
转载的东西: 本来zxing的c++部分不是为windows准备的,在windows中编译应该用mingw比较合适。但我不熟悉这个。今天试一下,似乎可以在VS2008编译。虽然有很多问题,不过都可以解决的。 大概有如下问题: 1。isnan, NAN, INFINITY, fmax等一些常量或函数找不到,这是linux与windows包含文件的差异。自己创建就行,我做在nan.cpp和nan.h之中。 2。文件同名:可以把那些文件编译到不同目录,这样就不会干扰了。默认是编译到同一个目录。 3。变长数组的语法:GCC支持变长的数组变量,比如 void gcc(int len) { int data[len]; } 但VC不支持,所以很多地方都要改过来。我的做法是:查到它所有的调用之处,找一个比较大的数值来取代len。 4。iconv.h: 要下载: http://gnuwin32.sourceforge.net/packages/libiconv.htm 需要DLL和lib导入库。我上传的代码不用iconv。通过设置NO_ICONV,可以不需要libiconv,但是扫描结果也没有转换,需要调用方自己做字符集转换。 经过这些,应该可以编译了。 编译它的示例: 这要求有ImageMagick,直接下载一个安装, 安装完成后,新建一个windows控制台项目,导入示例,设置好ImageMagick和zxing头文件和库文件目录。编译后,运行。 我放在zxtest项目中。 根据示例,写pascal接口,这部分代码放在ZXingDLL中。 通过分析,LuminanceSource应该是一个zxing分析图像的接口,要从这个派生出来一个类才能让zxing工作。示例是用MagickBitmapSource ,它用了ImageMagick库,太大,所以我分析了源码,发现只要输出灰度就行了,这样我在DELPHI中获取图像,然后转成灰度图,再转进来。具体看我的DELPHI和lazarus代码。 上传的压缩包没有带dll,只有工程文件,谁有VS2008编译一下吧。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值