2017-05-03 60 views
1

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

我已经这样做:

  1. 安装了Visual Studio 2017年社区版15.1
  2. 安装蟒:Python的3.6.0 |蟒蛇4.3.1(64位)| (默认情况下,2016年12月23日,11点57分41秒)[MSC v.1900 64位(AMD64)]在Win32
  3. 下载boost_1_64_0.7z和解压它
  4. 然自举
  5. b2 -a --with-python address-model=64 toolset=msvc runtime-link=static

得到的消息:The Boost C++ Libraries were successfully built!

6.Next:

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% 

7.在这个阶段,如果我尝试到run python setup.py install从DLIB目录中我得到的输出(当试图调用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. 
-- 
-- 

CMake Error at C:/Users/Lelek/dlib-19.4/dlib/cmake_utils/add_python_module:116 (message): 
    Boost python library not found. 
Call Stack (most recent call first): 
    CMakeLists.txt:6 (include) 

-- Configuring incomplete, errors occurred! 
See also "C:/Users/Lelek/dlib-19.4/tools/python/build/CMakeFiles/CMakeOutput.log". 

error: cmake configuration failed! 
+0

”完成后,将BOOST_LIBRARYDIR设置为等于b2放置编译库的位置。“ - 但它在哪里?找不到。 – Suisse

+0

@Suisse如果你仍然在寻找答案,然后寻找目录,如“C:\ Users \ ... \ boost_1_64_0 \ stage \ lib” –

+0

我已经把我的Windows笔记本电脑扔进垃圾箱,并得到了一台Mac。没有问题了。谢谢。 – Suisse

回答

0

像往常一样对我来说,我找到了答案,只要我问问题。所以,如果有人会得到相同的问题:

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

1

如果有人仍然存在这个问题,请尝试将所有调用改为将FIND_PACKAGE内的dlib \ cmake_utils \ add_python_module从'Boost'改为'boost'。为我工作。

如果发现升压后,安装试图打开python27.lib和失败:

  1. 删除提升。
  2. 在Anaconda激活py36环境后,重复步骤2-6中的原始问题。
  3. 重新运行dlib设置。

后者是我的一个愚蠢的错误,但以防万一。 “