記windows10下安裝dlib失敗經歷

一、前言

拖延症,上月底就該記錄了。折騰差不多三天,平均每天10小時折騰,仍失敗的安裝過程,最後棄坑去了Ubuntu安裝Dlib,下一篇博客(點擊打開鏈接)補充。

二、過程

         PC環境:Windows [版本 10.0.15063] 64位機器;Python 2.7.13(請去官網下載);最重要的一點是需要visual studio集成的cl.exe編譯器,我提前安裝好visual studio2017(cl.exe在MSVC\14.10.25017下面);dlib此時最新版本爲19.4.0.

           安裝dlib,方式1是通過pip install dlib,python2.7.9以後自帶pip,需將python/script目錄添加到環境變量path,否則無法在DOS命令下直接使用pip命令。方式2是下載dlib源碼安裝包,python setup.py install。這兩種方式都需要機器上安裝了boost和cmake。

        安裝cmake直接去官網下載,然後將cmake安裝目錄下的bin文件添加到環境變量path中(避免安裝dlib時提示找不到cmake)。

           安裝源碼boost(失敗)。下載源碼(boost 1_64_0),解壓源碼任意位置,啓動visual studio 開發者命令行模式CMD,進入解壓目錄,方式一:依次執行下面三條命令。並將第2條命令生成的bin文件目錄添加到環境變量path中。

命令1 :bootstrap.bat
命令2 :./b2 --prefix=C:\Boost32 install //此處bin 添加到path
命令3:b2 -a --with-python address-model=32 toolset=msvc runtime-link=stati

然後安裝dlib仍然提示找不到boost。

方式二:依次執行下面兩條命令。

bat 
./bz

並將安裝結果的兩條路徑添加BOOST_ROOT和BOOST_LIBRARYDIR。然後安裝的dlib仍提示找不到boost.。

此處參考的博文有:博文1博文2博文3博文4

後來果斷放棄源碼,直接在網上安裝別人編譯的boost安裝包(成功),下載鏈接https://sourceforge.net/projects/boost/files/boost-binaries/。第一次下載使用是已經編譯好的boost 1_64_0。添加BOOST_ROOT(boost目錄)和BOOST_LIBRARYDIR(boost目錄中的libs目錄)。安裝dlib不再提示找不到boost,說明boost安裝成功。

          開始折騰dlib,重點戲來了。此處分割線

===========================================================

按照此前的各個組件開始編譯dlib,dlib編譯總卡在最後一步gui.cpp  原因不明//崩潰 啊 最後從上午七點跑到下午兩點 仍然卡住
//注意 第一次 boost_1_64_0  cl.exe(2017 MSVC\14.10.25017) 卡在gui.cpp最後一步

然後我更新了visual studio到最新,重新編寫dlib。然後編譯失敗,編譯器版本未知。。

//注意 第二次 boost_1_64_0 cl.exe(2017 MSVC\14.11.25503 ) Unknown compiler version - please run the configure tests and report the results

接下來,我再次安裝了visual studio 2015,與2017並存,在環境變量添加vs2015的cl.exe路徑

// 注意 第三次 python編譯dlib仍然無效,尋找到的是2017的cl.exe 和第二次現象一致

//安裝2015 五十分鐘左右
//so 我要卸載2017!!!

再次編譯dlib,仍然失敗。

//注意 第四次  2015 MSVC 19.0.23026.0 和 boost 1_64_0 不合  編譯 dlib 找不到boost

此時,再次分割線。

===============================================================

將boost 16_4_0 換成  1_59_0
此時使用vs2015,cl.exe位置爲 MSVC 19.0.23026.0

第五次編譯dlib。dlib 1_64_0能夠完整編譯 編譯失敗 c++11提示部分支持
//補充 存在多個版本cl 即便在path指定cl路徑 在cmd編譯時 仍會使用默認cl   原因不明
//此前的vs17/15版本均安裝在D盤 並非C盤

此時再次,卸載2015 重裝2017 community 安裝在C盤,安裝時也安裝2015編譯工具。
下面是我的再次嘗試。。
第六次:2017 MSVC\14.11.25503 + boost_1_62_0 14.0 32  == unknown compiler
boost 16_4_0 換成  1_59_0
2015 MSVC 19.0.23026.0
dlib 1_64_0能夠完整編譯 編譯失敗 c++11提示部分支持
//補充 存在多個版本cl 即便在path指定cl路徑 在cmd編譯時 仍會使用默認cl   原因不明
//17/15版本均安裝在D盤 並非C盤

卸載2015 重裝2017 community 安裝在C
安裝時也安裝2015編譯工具

第七次:2017 MSVC\14.11.25503 + boost_1_62_0 14.0 32  == unknown compiler
第八次:2017 MSVC\14.11.25503 + boost_1_59_0 14.0 32  ==  找不到 boost
第九次:2017 MSVC\14.11.25503 + boost_1_64_0 14.1 32  == unknown compiler
第十次:2017 MSVC\14.11.25503 + boost_1_64_0 14.0 32  == unknown compiler

啊,無奈了。放棄windows。

=======================================================

三、補充
           1. 問題:提示'cl' 不是內部或外部命令,也不是可運行的程序或批處理文件。

            解決:進入visual studio的開發人員命令提示符,再執行相關數據。

          2. windows下安裝dlib與boost十分依賴於visual studio 的cl.exe編譯器版本型號,建議根據網上文檔安裝時,與相關文檔的vs版本一致。

          3。 啊 還是去linux吧。慢慢吐槽。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章