1. 程式人生 > >windows下zlib庫的編譯與使用

windows下zlib庫的編譯與使用

一、zlib庫的編譯

    首先要下載這個庫,這個谷歌和百度也都可以找得到的。我下載的是zlib-1.2.5,下載完解壓出來即可。下邊就開始編譯吧。(包括動態庫和靜態庫兩種)

1. 首先開啟VS2010的Command Prompt (32bit),也就是命令提示視窗。

2. 進入到zlib-1.2.5/contrib/masmx86目錄,執行bld_ml32.bat。(同理,64位的電腦進入masmx64目錄,執行bld_ml64.bat)。這一步執行bld_ml32批處理檔案,裡面呼叫ml命令編譯inffas32.asm和match686.asm,生成inffas32.obj和match686.obj(生成在本目錄下)。這兩個檔案在zlibvc中用到。

3. zlib的vs sln解決方案檔案可以在如下路徑中找到:zlib-1.2.5/contrib/vstudio/vc10/zlibvc.sln,開啟

   這個解決方案中包含6個工程。其中:

   (1). zlibvc生成動態連結庫zlibwapi.dll和對應的匯入庫zlibwapi.lib

   (2). zlibstat生成靜態連結庫zlibstat.lib

   (3). testzlibdll測試生成的動態連結庫zlibwapi.dll

   (4). testzlib測試生成的靜態連結庫zlibstat.lib        

   最後我們在debug模式下編譯整個解決方案。生成的dll和lib檔案可在相應的資料夾中找到。

下邊介紹如何使用編譯好的動態或是靜態庫。(假設專案工程已經建立完畢)

這裡我們把靜態庫zlibstat.lib和動態庫(zlibwapi.dll/zlibwapi.lib)以及zlib.h/zlibconf.h檔案放在一個資料夾中。

二、使用zlib靜態庫:zlibstat.lib

1. 包含標頭檔案

    屬性--C/C++--常規--附加包含目錄(新增包含.h檔案的目錄)

2. 定義巨集

    屬性--C/C++--前處理器--前處理器定義:新增 ZLIB_WINAPI ASMV ASMINF

3. 專案包含.lib檔案所在的目錄:

    屬性--連結器--常規--附加庫目錄

4. 專案包含.lib檔案

    屬性--連結器--輸入--附加依賴項(libstat.lib)

5. 專案程式碼中 #include "zlib.h"

編譯生成.exe即可使用。

三、使用動態庫 zlibwapi.lib

1. 包含標頭檔案

    屬性--C/C++--常規--附加包含目錄(新增包含.h的目錄)

2. 定義巨集

    屬性--C/C++--前處理器--前處理器定義:新增 ZLIB_WINAPI

3. 專案包含.lib檔案所在的目錄:

    屬性--連結器--常規--附加庫目錄

4. 專案包含.lib檔案

    屬性--連結器--輸入--附加依賴項(zlibwapi.lib)

5. 專案程式碼中 #include "zlib.h"

編譯生成.exe檔案需要.dll檔案支援(動態載入)