Dlib安装错误:无法找到Boost

时间:2017-05-03 17:26:52

标签: python c++ boost dlib

(请原谅我的英文不好!)尝试在我的电脑上安装dlib库时遇到陷阱(Windows 10 Pro,64x),但始终得到同样的错误:无法找到Boost

我已经做过的事情:

  1. 已安装Visual Studio Community 2017版本15.1
  2. 已安装的Anaconda:Python 3.6.0 | Anaconda 4.3.1(64位)| (默认情况下,2016年12月23日,11:57:41)[winv3上的MSC v.1900 64位(AMD64)]
  3. 下载了boost_1_64_0.7z并将其解压缩
  4. Ran bootstrap
  5. New-ADUser -Name "GlenJohn" -Path "OU=Sales"
  6. 收到消息:b2 -a --with-python address-model=64 toolset=msvc runtime-link=static

    6.Next:

    The Boost C++ Libraries were successfully built!

    7。在此阶段,如果我尝试从dlib目录 set BOOST_LIBRARYDIR=C:\Users\Lelek\boost_1_64_0\stage\lib set BOOST_INCLUDEDIR=C:\Users\Lelek\boost_1_64_0 set BOOST_ROOT=C:\Users\Lelek\boost_1_64_0 set PATH=%PATH%;%BOOST_ROOT%;%BOOST_LIBRARYDIR% 获取输出(尝试调用run python setup.py install时出现相同的错误):

    cmake -G "Visual Studio 15 2017 Win64" -DPYTHON3=1 .\tools\python
        CMake Warning at C:/Program Files/Cmake/share/cmake-3.8/Modules/FindBoost.cmake:1521 (message):
        No header defined for python-py34; skipping header check
        Call Stack (most recent call first):
        C:/Users/Lelek/dlib-19.4/dlib/cmake_utils/add_python_module:61(FIND_PACKAGE)
        CMakeLists.txt:6 (include)
        -- Could NOT find Boost
        CMake Warning at C:/Program Files/Cmake/share/cmake-3.8/Modules/FindBoost.cmake:1521 (message):
        No header defined for python-py35; skipping header check
        Call Stack (most recent call first):
        C:/Users/Lelek/dlib-19.4/dlib/cmake_utils/add_python_module:63 (FIND_PACKAGE)
        CMakeLists.txt:6 (include)
        -- Could NOT find Boost
        CMake Warning at C:/Program Files/Cmake/share/cmake-3.8/Modules/FindBoost.cmake:1521 (message):
        No header defined for python3; skipping header check
        Call Stack (most recent call first):
        C:/Users/Lelek/dlib-19.4/dlib/cmake_utils/add_python_module:66 (FIND_PACKAGE)
        CMakeLists.txt:6 (include)
        -- Could NOT find Boost
        -- Could NOT find Boost
        -- Found PythonLibs: C:/ProgramData/Anaconda3/libs/python36.lib (found suitable version "3.6.0", minimum required is "3.4")
    
    -- We couldn't find the right version of boost python.  If you installed boost and you are still getting this error then you might have installed a version of boost that was compiled with a different version of visual studio than the one you are using.  So you have to make sure that the version of visual studio is the same version that was used to compile the copy of boost you are using.
    --  Set the BOOST_ROOT and BOOST_LIBRARYDIR environment variables before running cmake.
    --  E.g.  Something like this:
    --     set BOOST_ROOT=C:\local\boost_1_57_0
    --     set BOOST_LIBRARYDIR=C:\local\boost_1_57_0\stage\lib
    --
    --  You will also likely need to compile boost yourself rather than using one of the precompiled
    --  windows binaries.  Do this by going to the folder tools\build\ within boost and running
    --  bootstrap.bat.  Then run the command:
    --     b2 install
    --  And then add the output bin folder to your PATH.  Usually this is the C:\boost-build-engine\bin
    --  folder. Finally, go to the boost root and run a command like this:
    --     b2 -a --with-python address-model=64 toolset=msvc runtime-link=static
    --  When it completes, set BOOST_LIBRARYDIR equal to wherever b2 put the compiled libraries.
    --  Note that you will need to set the address-model based on if you want a 32 or 64bit python library.
    --
    --  Next, when you invoke cmake to compile dlib you may have to use cmake's -G option to set the
    --  64 vs. 32bit mode of visual studio.  Also, if you want a Python3 library you will need to
    --  add -DPYTHON3=1.  You do this with a statement like:
    --     cmake -G "Visual Studio 12 2013 Win64" -DPYTHON3=1 ..\..\tools\python
    --  Rather than:
    --     cmake ..\..\tools\python
    --  Which will build a 32bit Python2 module by default on most systems.
    --
    --  
    

2 个答案:

答案 0 :(得分:1)

如果还有人遇到此问题,请尝试更改来自' Boost'的dlib \ cmake_utils \ add_python_module中所有对FIND_PACKAGE的调用。提升'。为我工作。

如果在找到boost后,安装尝试打开python27.lib并失败:

  1. 删除提升。
  2. 在Anaconda中激活py36环境后,重复原始问题中的步骤2-6。
  3. 重新运行dlib设置。
  4. 后者是我的一个愚蠢的错误,但以防万一。

答案 1 :(得分:0)

像往常一样,我一问完问题就找到了答案。所以,如果有人会遇到同样的问题:

为了解决他的问题,我删除了Anaconda并只安装了Python(3.5.0)。然后使用PyCharm更新了dlib。再说一遍,请原谅我糟糕的英语。