Qt_MinGW编译二维码生成库Zint及使用

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文件提示找不到动态库。

猜你喜欢

转载自blog.csdn.net/qq_25556149/article/details/81637461
今日推荐