参考:
https://www.cnblogs.com/rayfloyd/p/12765512.html
https://blog.csdn.net/qq_41399894/article/details/120281954
1、zlib编译
将win32\makefile.gcc拷贝到zlib源码的根目录
使用QtCreator集成安装的mingw编译zlib :
mingw32-make -f makefile.gcc
将生成的libz.a和需要的头文件如zutil.h复制到项目文件夹中
2、导入zlib库
通过QtCreator 右键项目==>添加库==>外部库导入libz.a
导入libz.a后,项目的pro文件会自动加入以下内容:
unix:!macx|win32: LIBS += -L$$PWD/./ -lz
INCLUDEPATH += $$PWD/.
DEPENDPATH += $$PWD/.
win32:!win32-g++: PRE_TARGETDEPS += $$PWD/./z.lib
else:unix:!macx|win32-g++: PRE_TARGETDEPS += $$PWD/./libz.a
3、include需要的zlib头文件
#include "zlib/zutil.h"
4、总结
其他类似的支持window平台编译的开源代码,都可以这样的方式编译,并以静态库的方式链接进来
5、Gzip工具类推荐
https://github.com/idaunis/binarytiers/blob/master/lib/zip/GZipHelper.h
6、示例源码:
#include "GZipHelper.h"
void main()
{
char plainText[]="Plain text here";
CA2GZIP gzip(plainText,strlen(plainText)); // do compressing here;
LPGZIP pgzip=gzip.pgzip; // pgzip is zipped data pointer, you can use it directly
int len=gzip.Length; // Length is length of zipped data;
CGZIP2A plain(pgzip,len); // do decompressing here
char *pplain=plain.psz; // psz is plain data pointer
int aLen=plain.Length; // Length is length of unzipped data.
}