Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

find_package() doesn't detect boost on Windows Cmake

I'm using a windows system. I want to use the Boost library using CMake. I've installed boost on C:\boost_1_55_0\ Here is my CMakeLists.txt file

set(Boost_USE_STATIC_LIBS        ON)
set(Boost_USE_MULTITHREADED      ON)
set(Boost_USE_STATIC_RUNTIME    OFF)
find_package(Boost 1.55.0 COMPONENTS thread)

if(Boost_FOUND)
    include_directories(${Boost_INCLUDE_DIRS}) 
    LINK_DIRECTORIES(${Boost_LIBRARY_DIRS})
    add_executable (linking_with_boost main.cc sqr.cc)
    target_link_libraries(linking_with_boost ${Boost_LIBRARIES})
else()
    message(STATUS "Fail  asdasd!")
endif()

I'm getting --Could NOT find Boost Output:

$ cmake ../
-- Could NOT find Boost
-- Fail  asdasd!
-- Configuring done
-- Generating done
-- Build files have been written to: D:/ubuntu_share/programming/C++/practice/cm
ake/linking_with_boost/build_win
like image 953
Pritesh Acharya Avatar asked Jan 07 '14 10:01

Pritesh Acharya


2 Answers

On Windows 7 x64 I have Boost 1.58 installed to C:\SDKs\boost_1_58_0. In order to allow cMake to find all of the appropriate files, I had to add the following three system variables:

    BOOST_INCLUDEDIR    C:\SDKs\boost_1_58_0\
    BOOST_LIBRARYDIR    C:\SDKs\boost_1_58_0\lib64-msvc-12.0
    BOOST_ROOT          C:\SDKs\boost_1_58_0\boost
like image 99
DJ Quimby Avatar answered Sep 29 '22 12:09

DJ Quimby


In addition to the BOOST_ROOT I also had to set the BOOST_LIBRARYDIR variable to succeed. In my case this was c:\Program Files\boost_1_56_0\lib64-msvc-12.0

like image 22
dothebart Avatar answered Sep 29 '22 11:09

dothebart