打开zlib官网,找到下载链接,右键复制地址:
在Linux中使用wget命令下载,执行如下命令开始下载:
wget http://zlib.net/zlib-1.2.8.tar.gz
解压:
tar zxvf zlib-1.2.8.tar.gz
第二步 开始安装
安装过程比较简单,进入zlib的解压目录,依次执行下面几条命令即可:
配置:
./configure
如果之前没有安装gcc(C 编译器),这一步将报如下错误信息::
xueliang@dev:~/download/zlib-1.2.8$ ./configure
Checking for gcc…
Compiler error reporting is too harsh for ./configure (perhaps remove -Werror).
** ./configure aborting.
xueliang@dev:~/download/zlib-1.2.8$
希望我的回答能对你有所帮助。
1 准备工作。下载zlib.dll。以及相关头文件。将dll文件及头文件加入工程。2 压缩:调用函数compress.形式为int compress(Byte * dest, uLong* destLen, const Byte *source, ULONG sourceLen)功能是将source指向的空间,长度为sourceLen的数据进行压缩,压缩数据储存在dest中,长度由参数destLen返回。如果压缩出错,返回对应错误号,否则返回0.3解压缩:调用函数uncompress.形式为int uncompress(Byte * dest, uLong* destLen, const Byte *source, ULONG sourceLen)功能是将source指向的空间,长度为sourceLen的数据进行解压缩,解压缩后的数据储存在dest中,长度由参数destLen返回。如果解压缩出错,返回对应错误号,否则返回0.下面是使用zlib库的压缩和解压缩演示代码:#include <stdlib.h>
#include <stdio.h>
#include <zlib.h>
int main(int argc, char* argv[])
{
FILE* file
uLong flen
unsigned char* fbuf = NULL
uLong clen
unsigned char* cbuf = NULL
/* 通过命令行参数将srcfile文件的数据压缩后存放到dstfile文件中 */
if(argc < 3)
{
printf("Usage: zcdemo srcfile dstfile\n")
return -1
}
if((file = fopen(argv[1], "rb")) == NULL)
{
printf("Can\'t open %s!\n", argv[1])
return -1
}
/* 装载源文件数据到缓冲区 */
fseek(file, 0L, SEEK_END) /* 跳到文件末尾 */
flen = ftell(file) /* 获取文件长度 */
fseek(file, 0L, SEEK_SET)
if((fbuf = (unsigned char*)malloc(sizeof(unsigned char) * flen)) == NULL)
{
printf("No enough memory!\n")
fclose(file)
return -1
}
fread(fbuf, sizeof(unsigned char), flen, file)
/* 压缩数据 */
clen = compressBound(flen)
if((cbuf = (unsigned char*)malloc(sizeof(unsigned char) * clen)) == NULL)
{
printf("No enough memory!\n")
fclose(file)
return -1
}
if(compress(cbuf, &clen, fbuf, flen) != Z_OK)
{
printf("Compress %s failed!\n", argv[1])
return -1
}
fclose(file)
if((file = fopen(argv[2], "wb")) == NULL)
{
printf("Can\'t create %s!\n", argv[2])
return -1
}
/* 保存压缩后的数据到目标文件 */
fwrite(&flen, sizeof(uLong), 1, file) /* 写入源文件长度 */
fwrite(&clen, sizeof(uLong), 1, file) /* 写入目标数据长度 */
fwrite(cbuf, sizeof(unsigned char), clen, file)
fclose(file)
free(fbuf)
free(cbuf)
return 0
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)