记windows10下安装dlib失败经历

来源:互联网 发布:python 依赖注入 编辑:程序博客网 时间:2024/06/06 02:30

一、前言

拖延症,上月底就该记录了。折腾差不多三天,平均每天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吧。慢慢吐槽。

原创粉丝点击