Zint是一个二维码生成库,可以生成多种条形码和二维码,包括我们常见的QR码和DM码,当我们要在Windows上使用Qt并进行Zint库的应用时,可以使用VS进行编译,也可以使用MinGW进行编译,下面介绍如何使用MinGW进行Zint库的编译,并在Qt(MinGW)中进行使用。

首先Zint并不是一个单独的库,它的使用还需要依赖zlib、lpng这两个库,所以在编译Zint库之前,还要编译好这两个库,而这两个库中,lpng库依赖于zlib库,所以这三个库的编译顺序分别是zlib、lpng、Zint。

首先下载zlib的源码,这里下载的是zlib-1.2.11版本,打开cmake-gui(没有的需先进行安装),选择zlib的源码目录,和生成的路径,这里在源码目录中新建一个build文件夹,作为生成makefile等的文件路径。

这里可以不做修改,也可以对生成路径进行修改,就是最后的几个路径选项,如果不做修改,编译后的生成文件默认在C:/Program Files (x86)/zlib/目录下。

点击Configure按钮,会进行编译器的选择,这里选择本机安装的MinGW编译器就可以了(编译器的相关路径已加入系统环境变量中),然后我们会发现原先的红色消失了,每次对配置修改后都要点击Configure按钮,然后点击Generate按钮,等进度条走完后我们就可以在build文件下看到包括Makefile在内的相关文件。

进入cmd(windows中的命令行),将目录切换到我们刚才创建的build文件夹中,并执行命令mingw32-make

编译完后执行mingw32-make install 命令进行安装

我们可以看到生成库文件的相关路径,这里我们把整个zlib文件夹移动到桌面上,下面进行libpng库的编译,操作跟zlib库类似,不过要进行zlib库路径的设置,不然会提示找不到zlib库的。

上面DEBUG和RELEASE的路径中,选择.dll.a或者是.dll没有什么影响,点击Configure按钮后我们可以看到它输出框里会显示zlib库的版本。

后面的步骤跟前面一样,切换到Makefile文件所在目录(build文件夹中),执行mingw32-make 以及 mingw32-make install 这两个指令后,可以看到生成文件的相关路径,由于我们没做修改,所以默认是在C:\Program Files (x86)\libpng 路径下。

最后进行Zint库的编译,步骤一样,这里我们要把 zlib 和 libpng 这两个库的相关路径都添加进来

执行Configure 后我们可以看到当前zlib和libpng库的版本

执行Generate,会出现一些警告,这里可以不用管它,只要不出现error就行。

进行编译和安装

至此,Zint库编译完成,下面使用Qt进行一个简单的应用,首先建立一个Qt工程,将库路径添加进.pro文件中,这里添加的是.a文件,相当于.lib文件。

添加Zint库的头文件,并编写一段简单的程序进行测试。

    struct zint_symbol* my_symbol = ZBarcode_Create();my_symbol->symbology = BARCODE_CODE39;char* testvalue = "./build.png";strcpy(my_symbol->outfile, testvalue);ZBarcode_Encode(my_symbol, (unsigned char*)"123-321-111", 0);ZBarcode_Print(my_symbol, 0);ZBarcode_Delete(my_symbol);QImage qImg("./build.png");if(qImg.isNull())qDebug() << "qImg is empty.";else ui->image->setPixmap(QPixmap::fromImage(qImg));

运行程序,可以看到如下效果

这里有一点要注意的是,运行程序的时候,以上三个库的动态库(.dll文件)要添加到运行文件的目录中,不然会出现程序异常结束,或者点击.exe文件提示找不到动态库。

Qt_MinGW编译二维码生成库Zint及使用相关推荐

  1. [2021]Linux下C语言qrencode二维码生成库的基本使用和ARM开发板移植

    文章目录 一.前言 二.准备所用到的环境以及版本信息 1.Ubuntu和内核版本 2.gcc和g++版本 3.交叉编译gcc和g++版本 4.开发板信息 三.开发环境编译&安装qrencode ...

  2. libqr--简单好用的c++二维码生成库

    libqr简介 libqr是github上开源的二维码生成库,地址:https://github.com/rsky/qrcode.使用c语言写成,但是用在c++代码里面毫无违和感,api简单好用,自带 ...

  3. 推荐一个开源的 .NET 二维码生成库

    你好,这里是 Dotnet 工具箱,定期分享 Dotnet 有趣,实用的工具和组件,希望对您有用! 介绍 QrCodeGenerator 是开源的 .NET 二维码生成库,它支持从文本字符串和字节数组 ...

  4. C/C++二维码生成库qrencode的使用

    1.在 https://fukuchi.org/works/qrencode/ 下载qrencode库,我下的是qrencode-4.0.2.tar.gz版本. 2.为该库生成vs解决方案,这里用到c ...

  5. 二维码生成库zxing 空白边距问题

    今天项目中有生成 二维码的需求,所以就想到了zxing这个 二维码库,至于zxing库的详解,这里不做说明,网上一大堆.这里主要讲下使用过程中遇到的大坑,空白边距问题.源码中给出了一个margen的参 ...

  6. Python二维码生成库qrcode示例

    二维码简称 QR Code(Quick Response Code),学名为快速响应矩阵码,是二维条码的一种,由日本的 Denso Wave 公司于 1994 年发明.现随着智能手机的普及,已广泛应用 ...

  7. VUE中:printJS使用,附带JsBarcode条码生成器,网页转图片html2canvas,base64上传保存处理,二维码生成库qrcode,二维码/条码扫描识别,domtoimage

    官网 JsBarcode官网 JsBarcode的GitHub-WIKI 我的项目需求只需要将配置好的HTML与CSS样式传入进去就好,较为简单. 九个月后html2canvas出现线上问题 设置了跨 ...

  8. C++二维码相关库编译

    一.瞎想 坐在地铁上闲来无聊,突然想到了二维码,顺手就百度了下相关的资料,目前C++二维码相关的库不多,也就zbar(开源中国上下了半天也没下载下来).zxing,不过这两个库据说都是解析二维码的,不 ...

  9. iOS中 扫描二维码/生成二维码详解

    最近大家总是问我有没有关于二维码的demo,为了满足大家的需求,特此研究了一番,希望能帮到大家! 指示根视图: ? 1 self.window.rootViewController = [[UINav ...

  10. 【愚公系列】2022年12月 .NET CORE工具案例-.NET Core使用QrCodeGenerator进行二维码生成

    文章目录 前言 一..NET Core使用QrCodeGenerator进行二维码生成 1.安装nuget程序包 2.二维码生成 2.1 基本生成 2.2 设置前景和背景颜色 2.3 生成 PNG 格 ...

最新文章

  1. c语言指针和结构体难点,C语言指针和结构体
  2. JEECG_3.7 权限开发视频正式发布
  3. python 随机padding_Python backend.spatial_2d_padding方法代码示例
  4. java根据ip获取经纬度城市地址
  5. 零和收益DEA模型(ZSG-DEA)的求解
  6. matlab 插值出错,MATLAB插值问题
  7. tomcat出现404的原因_tomcat访问项目报404是什么原因?
  8. Gmail大改版,36岁的电子邮箱为何未像BBS一样消亡?
  9. 二进制数转整数、整数转二进制数、二进制数求模
  10. 检查字符串是否为合法的日期格式
  11. 微搭低代码基础开发教程
  12. 宁银消费金融来了 母行授信80亿,全国急招人
  13. php和mysql不在一台机器上_MySQL_在同一台机器上运行多个 MySQL 服务,**************************************** - phpStudy...
  14. php面向对象第一篇
  15. python中init什么意思_python中init是什么
  16. 汽车VIN码图像识别/汽车车架号OCR识别
  17. windows程序设计读书笔记一
  18. 联邦学习原始论文解读
  19. 视图实现圆角效果的三种方法及比较
  20. Android是个什么东西?

热门文章

  1. 高效能人士的七个习惯读后感与总结概括-(第二章)
  2. Rust_lings
  3. 第六章 第九节 焦点与tab顺序
  4. qpython3使用_用qpython3写一个最简单的发送短信的程序
  5. matlab什么样的数表示0,matlab里a(i)~=0什么意思
  6. 2022年java学什么?java怎么学?
  7. 巨详细一文教你如何撰写商业计划书
  8. 桥水基金:对中国股市自上而下的分析
  9. SQL:查询各科成绩前三名
  10. java全栈开发工程师面试题总结