zlib在linux安装路径,Linux/Windows下Zlib的安装与使用

二:Windows平台

zlib提供了用VC++6.0编译的版本,因此我们首先在Windows下编译zlib的源代码,然后再用上面的例子测试:

1.

解压zlib-1.2.3-src.zip(文末有链接),打开zlib.dsw,直接编译,提示:

'ml.exe' 不是内部或外部命令,也不是可运行的程序或批处理文件。

2.

因为ml.exe是微软的汇编编译器,我们不需要,因此:Build-->Set Active Project Configuration,将所有的带"ASM"的项都去掉,然后选择Win32 LIB Debug,如下图:

9f02ab2a9aa5aa5dfae3911f4a8370c2.png

3.

在zlib classes上右键选择设为启动项目,然后再编译,出现如下错误:

fatal error C1083: Cannot open include file: 'unistd.h': No such file or directory compress.c

unistd.h是Linux下的文件,我们不需要,只要将#if 1 改为#if 0即可,如下图所示:

bba8b9c0e72a5623c96d361f2b5d3cdd.png

4.

再编译,发现出现如下4个错误:

error C2059: syntax error : 'bad suffix on number'

error C2146: syntax error : missing ')' before identifier 'L'

error C2198: 'gzseek' : too few actual parameters

error C2059: syntax error : ')'

没关系,将0LL改为0L即可(即去掉一个L),如下图:

b09b0defea76261dd7a6a65c6f554ce3.png

5.

再编译,没有错误,如下图:

b661397bcaeeee2438c68cc22708b859.png

6.

zlib编译好后,会生成zlib1.lib和zlib1.dll两个文件,这正是我们需要的。

下面还是用之前的测试程序:

新建一个VC++6工程,加入如下的代码,并将zlib1.dll拷贝到项目目录下:

#include 

#include "../zlib/include/zlib.h"

#pragma comment(lib, "../zlib/lib/zlib1.lib")

intmain()

{

/* 原始数据 */

unsignedcharstrSrc[] ="hello world! aaaaa bbbbb ccccc ddddd 中文测试 yes";

unsignedcharbuf[1024] = {0};

unsignedcharstrDst[1024] = {0};

unsignedlongsrcLen =sizeof(strSrc);

unsignedlongbufLen =sizeof(buf);

unsignedlongdstLen =sizeof(strDst);

printf("Src string:%s\nLength:%ld\n", strSrc, srcLen);

/* 压缩 */

compress(buf, &bufLen, strSrc, srcLen);

printf("After Compressed Length:%ld\n", bufLen);

/* 解压缩 */

uncompress(strDst, &dstLen, buf, bufLen);

printf("After UnCompressed Length:%ld\n",dstLen);

printf("UnCompressed String:%s\n",strDst);

return0;

}

和之前的程序类似,只多了#pragma comment,这里需要填入zlib1.lib的正确路径

然后运行,一切正常,如下图:

e4068545d917f639f75aa1769786b14d.png

呵呵,我们发现同样的字符串在Linux和Windows上长度是不一样的!

另外还要说的是我们编译的VC++6.0版的zlib工程中包含一个example示例程序,可以参考参考。

为了方便大家,本文的所有源码都可以下载:

具体下载目录在 /2012年资料/6月/4日/Linux&Windows下Zlib的安装与使用/0b1331709591d260c1c78e86d0c51c18.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值