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。具體使用,我將寫一篇隨筆。