CMake is not finding Boost

前端 未结 5 567
不思量自难忘°
不思量自难忘° 2020-11-29 04:24

I am trying to install CGAL. They describe their installation process as ever-so-simple here, section 6.1. When I run cmake-gui and then click configure

5条回答
  •  -上瘾入骨i
    2020-11-29 04:59

    Your output shows that CMake is searching for the libraries in the following places:

    D:/program files/boost_1_51/bin/lib
    D:/program files/boost_1_51/bin/stage/lib
    D:/program files/boost_1_51/lib
    D:/program files/boost_1_51/../lib
    D:/program files/boost_1_51/stage/lib
    C:/boost/lib
    C:/boost
    C:\Program Files (x86)/boost/boost_1_51_0/lib
    C:\Program Files (x86)/boost/boost_1_51/lib
    C:\Program Files (x86)/boost/lib
    C:\Program Files (x86)/boost
    /sw/local/lib
    

    It also shows that it's expecting the libraries to be named in a certain way. For example, the release version of Boost.Thread:

    boost_thread-vc100-mt-1_51
    boost_thread-vc100-mt
    boost_thread-mt-1_51
    boost_thread-mt
    boost_thread
    

    If your Boost libraries do exist in one of the searched locations, then it's probably the name of the library that's the problem. You can adjust the expected name of the Boost libraries by setting the appropriate CMake variables relevant to the FindBoost module.

    For example, if you built Boost using bjam with link=static threading=multi then in your CMakeLists.txt before find_package(Boost ...) you'll want to do

    set(Boost_USE_STATIC_LIBS ON)
    set(Boost_USE_MULTITHREADED ON)
    

    Or invoke CMake with -DBoost_USE_STATIC_LIBS=ON -DBoost_USE_MULTITHREADED=ON.

    As @noam has pointed out in the comments below, in this particular case, it appears that CGAL requires the shared (DLL) versions of the Boost libraries; passing -DBoost_USE_STATIC_LIBS=ON on the command line doesn't have any effect.

提交回复
热议问题