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與VC對應關系
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。具體使用,我將寫一篇隨筆。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM