按說安裝dlib很簡單,直接使用pip3 install dlib即可安裝了;在Linux系統(tǒng)下很方便寄雀,使用這條命令就可以安裝成功;但是在windows下,會出現(xiàn)編譯錯誤就斤。
在windows下安裝dlib最新版本19.17绷旗,是非常麻煩和耗時的一件事情,里面有很多坑邦尊,很難編譯成功疑苫。網(wǎng)上很多資料都有介紹曲横,試了還是沒有成功。我結(jié)合網(wǎng)上資料和個人摸索黍匾,成功完成dlib 19.17的編譯和安裝。
dlib19.17編譯主要依賴幾個工具:CMake,Boost和VS 2017(好像VS 2015以上的版本都可以)责语;需要注意的是win10 64位系統(tǒng),以上工具和編譯都要采用64位的系統(tǒng)顽照。為了安裝簡單谓媒,建議電腦上只安裝python 3.5,不要安裝其他版本的python,以免設(shè)置不當(dāng)編譯出錯贬堵。
1. CMake工具安裝
由于我是win10 64位系統(tǒng)黎做,所以選擇cmake-3.14.3-win64-x64.msi進(jìn)行下載安裝宏所。這個安裝比較簡單浓镜,按默認(rèn)一步步安裝即可禽车,不做解釋。一般是安裝在C:\Program Files\CMake\bin目錄逸月。
2. 安裝VC++編譯工具
要求VS 2015以上的版本栓撞,特別是VSVC++版本要滿足dlib編譯要求,最好是VS2017并且安裝過更新的版本碗硬。為什么安裝一個VS 2017要描述這么啰嗦瓤湘,因為這個是編譯dlib的關(guān)鍵,如果版本和工具集沒有安裝對恩尾,編譯就不會成功弛说,還不知道錯誤發(fā)生在哪里。我就是被這個折騰了一天時間特笋。
dlib的編譯要求(在dlib-19.17.0\dlib\cmake_utils\set_compiler_specific_options.cmake描述如下):
因為我們只需要VC++工具集編譯,所以只需要安裝VS 2017社區(qū)版本Visual Studio Community 2017即可猎物』⑶簦可以直接在官網(wǎng)https://visualstudio.microsoft.com/zh-hans/vs/older-downloads/下載安裝。下載vs2017_community.exe,一步步安裝即可蔫磨,主要安裝使用C++的桌面開發(fā)淘讥、使用C++的Linux開發(fā)和Visual Studio擴(kuò)展開發(fā)三個模塊,選項如下:
3.設(shè)置編譯的環(huán)境變量(系統(tǒng)變量):
在windows系統(tǒng)環(huán)境變量中堤如,對Path變量添加如下幾個VS2017和Cmake的路徑(主要是cl.exe和cmake.exe編譯工具和頭文件的搜索路徑)蒲列,如下圖所示:
設(shè)置完環(huán)境變量后窒朋,重新打開cmd命令行窗口,分別執(zhí)行cl.exe和cmake.exe驗證一下蝗岖,是否設(shè)置成功侥猩;這兩條命令可以執(zhí)行成功,表示設(shè)置OK抵赢。(注意這里一定要是14.16.27023以上的版本欺劳,如果是14.10.25017版本,請先升級VS2017的更新铅鲤。我之前使用14.10.25017編譯失敾帷)
4.? boost工具下載源代碼,編譯和安裝
使用pip install boost安裝最簡單邢享、快捷鹏往,但是可能是目前可以安裝的版本太低的原因,會導(dǎo)致編譯dlib不成功骇塘。這里我是安照網(wǎng)上資料介紹伊履,采用下載源代碼方式進(jìn)行編譯安裝的。
boost官網(wǎng):https://www.boost.org/?(國外網(wǎng)站绪爸,在國內(nèi)訪問都比較慢)
從官網(wǎng)下載最新的boost_1_70_0.zip文件湾碎,成功后解壓(隨便那個目錄,可以直接在主目錄下解壓奠货;我解壓目錄為C:\boost_1_70_0介褥,避免使用中文、超長名稱或者有空格的目錄名稱递惋,避免意外錯誤)柔滔,然后在編譯和安裝。
STEP1.進(jìn)入解壓后的目錄萍虽,執(zhí)行bootstrap.bat批處理命令:
在執(zhí)行bootstrap.bat前睛廊,會調(diào)用cl.exe,需要設(shè)置vc變量杉编;先執(zhí)行vc設(shè)置環(huán)境變量的批處理vcvars64.bat超全,該文件位于我的機(jī)器C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build目錄中;否則編譯出錯邓馒,出現(xiàn)”fatal error C1034錯誤:c:\boost_1_70_0\tools\build\src\engine\jam.h(71) : fatal error C1034: ctype.h: 不包括路徑集 compile.c“ 嘶朱。如果成功就會生成b2.exe、bjam.exe以及project-config.jam文件光酣。
STEP2. 執(zhí)行 b2 install疏遏,這步非常耗費(fèi)時間,大概要1~2個小時(由電腦性能決定)
STEP3.?執(zhí)行?b2 -a --with-python address-model=64 toolset=msvc runtime-link=static
在boost_1_70_0/stage/lib目錄下生成這兩個lib文件:
STEP4.將編譯好的boost 文件夾和lib加入到環(huán)境變量
設(shè)置windows的系統(tǒng)變量BOOST_LIBRARYDIR和BOOST_ROOT如下:
5.下載dlib源代碼,編譯财异、安裝
dlib官網(wǎng)為:http://dlib.net/
點(diǎn)擊Download dlib ver 19.17下載源代碼dlib-19.17.0.tar.gz到本地倘零。解壓到c:\dlib-19.17.0目錄。為了保險起見再次運(yùn)行vcvars64.bat文件戳寸,然后執(zhí)行python setup.py install命令進(jìn)行編譯和安裝呈驶。
這樣已經(jīng)將dlib庫安裝到環(huán)境中了履恩。也可以使用python setup.py bdist_wininst命令打包成exe安裝程序,給其他人安裝使用背蟆。