• QT学习_QT压缩文件ZIP编译


    QT压缩文件ZIP编译
    环境准备
    系统变量里加入:

    C:\Windows\System32
    D:\Program Files (x86)\Microsoft Visual Studio 14.0\VC
    
    

    准备工具

    编译zlib

    • 打开VS2015 x64本地命令行工具(在开始栏VS2015文件夹中)

    • cd 到解压的zlib文件目录

    • 输入

      nmake -f win32/Makefile.msc AS=ml64 LOC="-DASMV -DASMINF -I." OBJA="inffasx64.obj gvmat64.obj inffas8664.obj"
      
      
    • 若出错,则试着将VC\bin\amd64\ml64.exe文件拷贝到zlib文件目录下再进行编译

    • 编译后生成文件 zdll.lib,zlib1.dll等等

    编译quaZip

    • 在quazip文件建立include和lib两个文件夹
    • 在include文件夹放入zlib1211/contrib/minizip
      里的所有.h文件以及zlib目录的zconf.h和zlib.h文件,lib文件里放入zlib编译生成的zdll.lib文件。
    • 用QT打开quazip.pro,进入,点击quazip.pro,去掉quaziptest相关
    • 在内部quazip项目中添加依赖的zlib库,项目右击,选择添加库,添加外部库,点击下一步。选择lib文件夹下的zlib.dll文件,点击下一步,完成即可,在quazip.pro下会自动添加代码。
    • 对项目右键先执行qmake,再进行构建,构建完成,就可以在Debug\release模式下生成我们需要的dll和lib文件,分别在对应debug/release文件夹中
    • 编译完成

    测试

    • 新建QT项目,在项目文件下,新建include文件夹和lib文件夹,将quazip下的quazip文件里的所有.h文件以及zconf.h和zlib.h文件复制到include文件中。

    • 将quazip编译生成的两个版本的 lib和dll 以及 zlib编译生成的zdll.lib复制到lib文件夹下

    • 按上面方法添加这两个lib依赖库

      win32: LIBS += -L$$PWD/quazipPack/lib/ -lzdll
      
      win32:CONFIG(release, debug|release): LIBS += -L$$PWD/quazipPack/lib/ -lquazip
      else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/quazipPack/lib/ -lquazipd
      
      INCLUDEPATH += $$PWD/quazipPack/include
      DEPENDPATH += $$PWD/quazipPack/include
      
    • 在项目的头文件加入:#include <JlCompress.h> 进行验证,运行成功,则可以进行文件的压缩和解压。

    库使用方法
    QuaZIP类描述:
    在这里插入图片描述
    主要用QuaZip中的JlCompress类来压缩和解压缩文件

    静态方法压缩文件

    
    static bool compressDir(QString fileCompressed, QString dir=QString(), bool recursive = true)
        
    
    

    参数:

    第一个参数fileCompressed表示压缩后的文件
    第二个参数dir表示待压缩的目录
    第三个参数recursive表示是否递归
    解压缩用静态方法:extractDir

    
    static QStringList extractDir(QString fileCompressed, QString dir=QString())
        
    
    

    参数:

    第一个参数fileCompressed表示待解压缩的文件
    第二个参数表示解压缩存放的目录
    例子

    if(false == JlCompress::compressDir("D:\\lesliex\\QTpro\\QuaZIP_Learn\\quazipTest\\1.zip",
                                            "D:\\lesliex\\QTpro\\QuaZIP_Learn\\quazipTest\\1"))
        {
            qDebug("false");
        }
        else{
            qDebug("yes");
        }
    
    

    原文:https://blog.csdn.net/weixin_44342705/article/details/119786175

  • 相关阅读:
    shell脚本操作mysql通用脚本
    chfs共享系统搭建
    P6717 [CCO2018] Boring Lectures题解
    vim快捷命令
    第一个pnpm的工程
    js/react方法学习
    赵长鹏:我所遵循的 15 条处事原则
    《Unix&Linux系统编程》第五章学习笔记
    stat命令的实现mysate
    《Unix&Linux系统编程》第三章学习笔记
  • 原文地址:https://www.cnblogs.com/xiaohai123/p/16334767.html
Copyright © 2020-2023  润新知