ZXing核心库的编译

ZXing核心库的编译

Zebra Crossing 简称ZXing是一款1D/2D条码扫描的开源项目,http://code.google.com/p/zxing/。由于ZXing开源项目下载的文件,需要经过编译核心库后才能使用,本文将简单介绍如何编译ZXing核心库。

【第一步:编译前准备】下载相关代码和工具

下载ZXing地址:http://code.google.com/p/zxing/; 

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

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

1)Ant工具安装:

解压Ant,并配置:

新增环境变量:ANT_HOME =C:/devtools/apache-ant-1.8.1

PATH后追加:C:/devtolls/apache-ant-1.8.4/bin 

在cmd下输入ant,出现下面的反馈,说明安装ant成功:

  Buildfile: build.xml does not exist! 

  Build failed 

2)解压proguard4.8

3)解压并配置ZXing

目前最新稳定版本是2.1,解压:ZXing-2.1.zip后的主要目录结构如下:

zxing-2.1

        --android

        --android-integration

        --core

        --cpp

        --build.properties

        --build.xml

        ........

对解压zxing-2.1目录下的build.properties文件进行配置修改,新增下面两条配置信息:

#by peng3409, 版本为4.4以上 

proguard-jar=../proguard4.8/lib/proguard.jar

##by peng3409

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

注意这里使用的相对路径,请根据自己的安装配置情况设定路径;

【第二部:编译和核心库】

在CMD中,跳转到ZXing2.1的core目录下,输入“ant”回车,即使用Ant对ZXing进行编译,出现下面的提示表示编译成功。

devtools\zxing-2.1\core>ant

Buildfile: devtools\zxing-2.1\core\build.xml

BUILD SUCCESSFUL

Total time: 16 seconds

表示成功编译

转载的东西: 本来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、付费专栏及课程。

余额充值