当前位置: 首页 > 工具软件 > Zint > 使用案例 >

zint编译配置整理

俞博涛
2023-12-01

Zint是一个强大的二维码编码生成开源工具,基于C语言开发,支持Code 128, Data Matrix, USPS OneCode, EAN-128, UPC/EAN, ITF, QR Code,Code 16k, PDF417, MicroPDF417, LOGMARS, Maxicode, GS1 DataBar, Aztec等各种码制,采用BSD和GPLv3授权。

因项目需要支持pdf417二维码生成,经过比较各种开源项目,最终决定选用zint,网上有资料说zint对中文编码支持不好,没有仔细去研究,目前采用的方案是直接将待编码数据作为二进制字节处理,不关心实际的编码,由上层应用来处理采用哪种编码。

Zint依赖于libpng和libz(libpng需要libz),本文档采用的版本分别为zint-2.4.2,zlib-1.2.8,libpng-1.6.23。

Windows下编译

首先需要编译libpng和libz,libpng中已集成了VisualStudio工程,编译很方便。

1、  将libpng和zlib分别解压到各自目录,zlib解压后名字为zlib-1.2.8,修改为zlib与libpng目录同级即可。

2、  进入libpng-1.6.23目录,在projects目录下有visualc71和vstudio两个vc工程目录,分别对应vs2005和vs2010,可根据自己开发环境来选择。

3、  工程配置中已有了Lib Release/LibDebug/Dll Release/Dll Debug各项配置,也同时集成了zlib的编译,非常方便,根据需要编译即可得到zlib和libpng的链接库。

4、  解压zint到zint-2.4.2目录,在win32目录下有创建好的vs工程,打开即可。

5、  zint工程中包含了libzint(开发库)和zint(二维码生成工具)两个。

6、  由于zint依赖于libpng和zlib,所以需要配置两个库的头文件和库文件,这里有两种方式,一种是直接在工程里配置头文件和库文件相对路径,再一种是把头文件拷贝到backend目录(需要拷贝png.h、pngconf.h、pnglibconf.h和zlib.h、zconf.h),把编译后的libpng和zlib的库拷贝到工程目录,在工程配置里引用即可。

7、  这里有个坑,backend下png.c里少引用了zlib.h,在#include“png.h”下添加即可,否则会提示有个宏定义Z_BEST_COMPRESSION找不到。

8、  编译得到libzint的库就可以使用了。注意静态库使用时还要同时链接libpng和zlib的静态库。

Linux下编译

linux下的编译更简单,注意同样需要第7步修改源码。

编译的顺序为zlib—>libpng—>zint。zlib和libpng使用默认的configure、make、make install即可。zint使用了cmake,如果系统没有需要先安装,然后根据INSTALL中的提示编译即可:

cd build

cmake ..

make

make install

 类似资料: