1. 进入官网 http://zlib.net/ ,下载且解压 zlib1211.zip;
2. 打开已解压的 zlib-1.2.11 目录,找到 win32 文件夹
3. 将 Makefile.msc 复制到上一层,也就是图 2,未进入 win32 前的地方
4. 打开 VS2013 命令行工具,使用 cd 命令进入 zlib-1.2.11 目录(第 3 步 Makefile.msc 所在的目录)
5. 键入命令行:nmake /f Makefile.msc
6. 回车执行
7. 此时打开 zlib-1.2.11 目录,我们发现已经生成一系列文件.zlib 静态库只需要 zlib-1.2.11 目录生成的三个文件,zlib.h / zconf.h / zlib.lib,但是请勿使用此时生成的 zlib.lib,VS2013 测试此时生成的 zlib.lib 静态库,使用函数 uncompress,将一直断在汇编 L_get_length_code_mmx.lib(亲身经历).我们需要在 VS2013 将预处理器中 ASMINF 宏删除重新编译一份工程(不要着急,稍后就说怎么做).那么,我们之前做的工作是否白费了呢?不是的.
9.zlib-1.2.11 目录,进入 contrib 目录,再进入 vstudio 目录,选择你的 VC 版本目录,具体看对应的表,VS2013 选择 vc12 目录;
VS 6.0 | VC6.0 |
VS 2002 | VC7.0 |
VS 2003 | VC7.1 |
VS 2005 | VC8.0 |
VS 2008 | VC9.0 |
VS 2010 | VC10 |
VS 2012 | VC11 |
VS 2013 | VC12 |
VS 2015 | VC14 |
10. 打开 zlibvc.sln,进入工程(再坚持一会,编译马上好),选择编译生成 Release 发布版(勿选择 Debug).再选中 zlibstat,右键属性,配置属性,C/C++,预处理器,预处理器定义,编辑,删除 ASMINF.
11. 右键 zlibstat,重新生成.我们使用 zlib.lib 静态库,只要生成这一个就够了.也可以整个工程全部重新编译生成.
12. 进入..\zlib-1.2.11\contrib\vstudio\vc12\x86\ZlibStatRelease,我们发现 zlibstat.lib.此版本使用 uncompress 正常,无断在汇编 L_get_length_code_mmx.lib 的错误.
13. 使用 zlibstat.lib 需要头文件,zlib.h 与 zconf.h.具体使用,我将写一篇随笔.
来源: https://www.cnblogs.com/yangjinbang/p/8330786.html