Zlib 编译和使用 您所在的位置:网站首页 zlib库使用 Zlib 编译和使用

Zlib 编译和使用

2024-04-20 06:24| 来源: 网络整理| 查看: 265

由于要弄一个项目,在windows下用到zlib库,现成的库都是release版本的,如果项目是debug的就会导致一大堆符号错误,无奈只得自己重新编译zlib库。

首先下载 源码和工程文件

解压到某个目录

开启VS2010 的命令行 32bit

进入到zlib-1.2.5\contrib\masmx86目录

执行bld_ml32.bat

打开工程项目zlib-1.2.5\contrib\vstudio\vc10\zlibvc.sln

编译整个solution(包括 debug 和 Release)

  此时已经得到了4个文件 zlibwapi.dll zlibwapi.lib zlibwapid.dll zlibwapid.lib 其中 lib 文件是连接期间用到的,dll文件是运行时候用到的。还有两个头文件 zconf.h zlib.h 是在编译期间用到。关于lib 和dll 关系和区别可见链接。

  把得到的lib文件放在VS工程目录下,在 属性 -> 连接器 -> 输入 -> 附加依赖项 一栏里面把刚才得到的lib文件加进去,注意末尾带有 d 的表示debug版。

此时编译,链接依然有错:

error LNK2019: 无法解析的外部符号 _compress

  在 VS 2010 下通过 dumpbin 命令查看lib导出函数 :

dumpbin /exports XXX.lib

可以看到 有compress 的导出。

ordinal name 1 _adler32@12 140 _adler32_combine@12 39 _compress2@20 2 _compress@16

经过网上查询,发现是要在vs2010的WIN32环境下加入 ZLIB_WINAPI的宏定义才行:

#define ZLIB_WINAPI #include "zconf.h"

注意这个宏定义要加在 zconf.h 包含之前,如果加载了 zconf.h 之后也不行。 此时编译一切顺利。

参考链接

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有