文章目录
- 一、zlib介绍
- 二、文件下载
- 三、文件分析
- 四、pro文件
- 五、编译实践
一、zlib介绍
zlib是一套通用的解压缩开源库,提供了内存(in-memory)压缩和解压函数。zlib是一套通用的解压缩开源库,提供了内存(in-memory)压缩和解压函数。
zlib能检测解压出来的数据完整性,由Jean-loup Gailly与Mark Adler所开发。最新版本为1.2.12。
zlib初版在1995年5月1日发表。zlib使用DEFLATE算法,最初是为libpng函式库所写的,后来普遍为许多软件所使用。
二、文件下载
zlib网址:
https://www.zlib.net/
获取zlib-1.2.12.tar.gz文件。
三、文件分析
解压缩zlib-1.2.12文件
文件夹下有CMakeLists.txt文件:
文件中,标识了相应的头文件、库文件,以及预定义项等信息:
关键的预定义项信息:
四、pro文件
考虑到linux、macos下 lseek等函数的调用,修改了gzguts.h文件:
配置头文件:
#头文件
HEADERS += zconf.h
zlib.h
crc32.h
deflate.h
gzguts.h
inffast.h
inffixed.h
inflate.h
inftrees.h
trees.h
zutil.h
配置源文件:
#源文件
SOURCES += adler32.c
compress.c
crc32.c
deflate.c
gzclose.c
gzlib.c
gzread.c
gzwrite.服务器托管网c
inflate.c
infback.c
inftrees.c
inffast.c
trees.c
uncompr.c
zutil.c
设置预定义项:
DEFINES += ZLIB_DLL NO_FSEEKO
DEFINES -= UNICODE
win32 {
DEFINES += _CRT_SECURE_NO_DEPRECATE _CRT_NONSTDC_NO_DEPRECATE
}
形成002.zlib-1.2.12.pro文件:
QT += core
TEMPLATE = lib
CONFIG += c++17
DESTDIR = ../QGIS
CONFIG(debug, debug|release){
MOC_DIR = ../build-QGIS/zlib/Debug/moc
RCC_DIR = ../build-QGIS/zlib/Debug/rcc
UI_DIR = ../build-QGIS/zlib/Debug/ui
OBJECTS_DIR = ../build-QGIS/zlib/Debug/obj
}else{
MOC_DIR = ../build-QGIS/zlib/Release/moc
RCC_DIR = ../build-QGIS/zlib/Release/rcc
UI_DIR = ../build-QGIS/zlib/Release/ui
OBJECTS_DIR = ../build-QGIS/zlib/Release/obj
}
CONFIG(deb服务器托管网ug, debug|release){
TARGET = zlibd
}else{
TARGET = zlib
}
DEFINES += ZLIB_DLL NO_FSEEKO
DEFINES -= UNICODE
win32 {
DEFINES += _CRT_SECURE_NO_DEPRECATE _CRT_NONSTDC_NO_DEPRECATE
}
# You can make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
#当前目录
INCLUDEPATH += ./
#头文件
HEADERS += zconf.h
zlib.h
crc32.h
deflate.h
gzguts.h
inffast.h
inffixed.h
inflate.h
inftrees.h
trees.h
zutil.h
#源文件
SOURCES += adler32.c
compress.c
crc32.c
deflate.c
gzclose.c
gzlib.c
gzread.c
gzwrite.c
inflate.c
infback.c
inftrees.c
inffast.c
trees.c
uncompr.c
zutil.c
# Default rules for deployment.
#unix {
# target.path = /usr/lib
#}
#!isEmpty(target.path): INSTALLS += target
五、编译实践
用QtCreator程序,打开002.zlib-1.2.12.pro文件。
在windows下编译,形成:
在linux下编译,形成:
在macos下编译,形成:
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
如是我闻: C#(发音为 “C sharp”)和C++是两种流行的编程语言,它们各有特点和用途。下面是这两种语言的一些主要区别: 设计理念和用途: C++: 是一种多范式编程语言,支持过程化编程、面向对象编程、泛型编程等。它被设计为具有低级编程能力的系统编程语…