zlib1.2.11静态编译
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。具体使用,我将写一篇随笔。