Linux下安装zlib-实现压缩功能

       zlib 程序库是著名的压缩引擎,zlib 也是著名的 gzip (GNU zip) 所采用的压缩引擎。

     如何安装zlib库?

    一、 首先安装zlib,从其官方网站下载最新的源程序,网址:http://www.gzip.org/zlib/。

      在然后将下载的文件解压释放到目录。解压后文件夹中自带了合适的makefile

      当使用make命令进行编译时,会要求先运行同一目录中的configure文件。

      打开configure文件我们可以发现是Shell Script,所以运行sudo sh configure来执行该脚本。


    二、 然后,通过查看makefiles文件,我们通过make命令编译该程序库,编译成功后(用root权限),通过make install来安装该库,也就是将头文件和lib文件自动放置到/usr/include和/usr/lib中。





      三、 安装完成后,就可以编写简单的压缩程序了,例如简单的示例如下:

#include <zlib.h>
#include <zconf.h>
#include <stdio.h>
#include <errno.h>
#include <stdlib.h>


int main(int argc,char **argv[])
{
    char msg[1000]="123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890\n";
    char buf[1000];
    char result[1000];
    unsigned long len, lenresult;

    printf("msg size:%d\n", sizeof(msg));
    len = 1000;
    compress(buf, &len, msg, sizeof(msg) );
    printf("buf size:%d\n", len);

    lenresult=1000;
    uncompress(result,&lenresult, buf, len );
    
    printf("result size:%d\n", lenresult);
    printf("result:%s\n", result);
    return 0;
}
运行后的结果为:



其中函数


1、int compress(Bytef *dest, uLongf *destLen, const Bytef *source, uLong sourceLen);

      compress函数将source缓冲区中的内容压缩到dest缓冲区。sourceLen表示source缓冲区的大小(以字节计)。注意函数的第二个参数destLen是传址调用。当调用函数时,destLen表示 dest 缓冲区的大小,destLen > (sourceLen + 12)*100.1%。当函数退出后,destLen表示压缩后缓冲区的实际大小。此时destLen / sourceLen正好是压缩率。

      compress若成功,则返回 Z_OK;若没有足够内存,则返回Z_MEM_ERROR;若输出缓冲区不够大,则返回Z_BUF_ERROR。


2、int uncompress(Bytef *dest, uLongf *destLen, const Bytef *source, uLong sourceLen);

      uncompress 函数将 source 缓冲区的内容解压缩到 dest 缓冲区。sourceLen 是 source 缓冲区的大小(以字节计)。注意函数的第二个参数 destLen 是传址调用。当调用函数时,destLen 表示 dest 缓冲区的大小, dest 缓冲区要足以容下解压后的数据。在进行解压缩时,需要提前知道被压缩的数据解压出来会有多大。这就要求在进行压缩之前,保存原始数据的大小(也就是解压后的数据的大小)。这不是 zlib 函数库的功能,需要我们做额外的工作。当函数退出后,destLen 是解压出来的数据的实际大小。

uncompress 若成功,则返回 Z_OK ;若没有足够内存,则返回 Z_MEM_ERROR;若输出缓冲区不够大,则返回Z_BUF_ERROR。若输入数据有误,则返回 Z_DATA_ERROR。



程序编译记得加上-lz ,制定库文件。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: zlib是一个用于数据压缩和解压缩的库,被广泛地应用于很多软件中。zlib-1.2.8是其中一个版本。在Linux系统中进行zlib-1.2.8的安装可以按照以下步骤进行: 1. 下载zlib-1.2.8的压缩文件,解压缩到某个目录,如:/usr/src。 2. 打开终端,进入到解压后的zlib目录,输入以下命令进行编译: ./configure make make install 3. 上述编译命令的意思是:configure命令是为了生成makefile文件,make命令是为了编译生成zlib库的二进制文件,make install命令是将zlib库文件安装到系统目录中,以便其他程序能够调用该库。 4. 编译完成后,可以进入到/usr/local/lib目录下查看是否已经安装成功。 5. 在使用zlib库的程序中,需要在源代码中包含zlib.h头文件,并且在编译时加上-lz选项,以便将zlib库链接到程序中。 总的来说,安装zlib-1.2.8库并不复杂,只需要几个步骤即可。需要注意的是,在编译时可能会出现一些依赖库的问题,需要根据实际情况进行解决。 ### 回答2: 在 Linux安装 zlib-1.2.8 的步骤: 1. 下载 zlib-1.2.8 的源代码包。 2. 解压源代码包,进入解压后的目录。 3. 输入以下命令来进行编译: ./configure make make check sudo make install 4. 验证 zlib 是否安装成功。可以通过以下命令来验证: ldconfig -p | grep zlib 如果验证结果显示“libz.so (libc6) => /usr/lib/x86_64-linux-gnu/libz.so”,则说明 zlib 成功安装。 以上是安装 zlib-1.2.8 的简单步骤,需要注意的是确保 Linux 系统中已经安装了编译工具和相关的依赖库。在安装过程中可能会遇到一些错误,可以通过查看官方文档或者在网上查找解决方案来解决。 ### 回答3: zlib是一个开源的压缩库,可以被很多软件所使用,比如Apache、SQLite以及Git等。在Linux系统中安装zlib-1.2.8库非常简单,只需要遵循以下步骤: 1. 下载zlib-1.2.8源代码包。可以在官方网站上或者其他一些镜像网站上下载zlib-1.2.8压缩包。解压缩文件到指定目录,比如/home/user/zlib-1.2.8。 2. 进入zlib-1.2.8目录。使用命令cd /home/user/zlib-1.2.8进入该目录。 3. 运行配置命令。运行./configure命令来对环境进行配置,确保所有依赖的库和工具都已安装。 4. 编译安装。运行make命令来编译源代码,使用sudo make install命令将其安装到系统中。 5. 验证安装。使用命令ldconfig -v | grep zlib来验证zlib库是否已经被安装到系统中。 6. 测试使用。可以在终端中运行一个可使用zlib的程序进行测试,如果可以使用该库进行压缩和解压缩,则zlib已经成功安装到了系统中。 以上就是在Linux系统中安装zlib-1.2.8的步骤,需要注意的是,在运行编译和安装命令时,需要使用root权限或者使用sudo命令。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值