libjpeg-turbo在Windows VS2010下的編譯
去年曾經寫過文章使用libjpeg-turbo,不過當時是基於Linux X86平臺的,現在需要在Windows下使用這個庫,於是上網找了一些編譯方法,形成此文。
一、先期工作
1、下載CMake
下載地址為:https://cmake.org/download/,當前最新版本為3.5.2,可直接下載編譯好的二進位制壓縮包:cmake-3.5.2-win32-x86.zip。
2、下載nasm
下載地址為:https://sourceforge.net/projects/nasm/,當前最新版本為2.07。下載後需要安裝,並設定環境變數PATH(後面在VS2010編譯要使用到)。(預設路徑:C:\Program Files (x86)\NASM,設定PATH成功後,在命令列輸入nasm -h可以看到幫助資訊)
3、下載libjpeg-turbo原始碼
下載地址為:https://github.com/libjpeg-turbo/libjpeg-turbo,這個是它的倉庫,在Releases中有不同版本可下載。
二、生成VS2010解決方案
雙擊cmake-gui.exe,選擇libjpeg-turbo原始碼目錄,選擇需要編譯的目錄,再點選configure按鈕,在彈出的對話方塊選VS2010(還有其它VS版本可供選擇),點選Finish即可進行Configure,再點選Generate即可生成解決方案檔案:libjpeg-turbo.sln。如下圖所示。
注:在此介面,可調整引數,比如是否生成動態庫、靜態庫,安裝目錄(預設是c:/libjpeg-turbo)。調整後,需要重新進行Congifure和Generate兩個步驟。
三、編譯
雙擊開啟libjpeg-turbo.sln,“ALL_BUILD”右鍵“生成”,即可進行編譯。按上文步驟,是可正常編譯的,如有問題,可能是nasm環境變數沒有配置正確。為減小庫檔案體積,建議選擇Release版本。“INSTALL”右鍵“生成”,即可在c盤的libjpeg-turbo目錄找到標頭檔案和庫檔案,以及二進位制檔案。其中turbojpeg-static.lib是靜態庫。注:在MFC中使用該庫,會提示預設庫衝突:msvcrt.lib(cinitexe.obj) : warning LNK4098: 預設庫“libcmt.lib”與其他庫的使用衝突;請使用 /NODEFAULTLIB:library解決方法是:在專案屬性->連結器->輸入->忽略特定預設庫,新增libcmt.lib。李遲 2016.4.19 週二 晚