0

I know this issue seems to pop and on a regular basis, however I haven't found a thread yet that solved my issue. If this is a duplicate question, I'd appreciate if you could link me to the correct thread :)

Intro: I'm trying to install https://github.com/mhekkel/mrc but cmake isn't happy with my boost version.

cmake version: 3.22.1

Boost version: 1.78.0

As c++ compiler I'm using mingw (might be relevant according to some threads here), so I've installed the boost libraries following this post: https://gist.github.com/sim642/29caef3cc8afaa273ce6#project-setup

I have then compiled the program_options package as described by boost (https://www.boost.org/doc/libs/1_78_0/more/getting_started/windows.html#prepare-to-use-a-boost-library-binary) with

bootstrap
.\b2 package_options

Initially I'm getting the following error:

CMake Error at C:/Program Files/CMake/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
  Could NOT find Boost (missing: Boost_INCLUDE_DIR program_options) (Required
  is at least version "1.70.0")

So I changed the CMakeList.txt and added: set(Boost_ADDITIONAL_VERSIONS 1.78.0 1.78)

Now cmake finds boost but not the required library program_options:

CMake Warning at C:/Program Files/CMake/share/cmake-3.22/Modules/FindBoost.cmake:1369 (message):
  New Boost version may have incorrect or missing dependencies and imported
  targets
Call Stack (most recent call first):
  C:/Program Files/CMake/share/cmake-3.22/Modules/FindBoost.cmake:1492 (_Boost_COMPONENT_DEPENDENCIES)
  C:/Program Files/CMake/share/cmake-3.22/Modules/FindBoost.cmake:2102 (_Boost_MISSING_DEPENDENCIES)
  CMakeLists.txt:71 (find_package)`

I have then played around with setting the library direction: set(BOOST_LIBRARYDIR <DIR>) but to no success.

With set(Boost_DEBUG ON) I can see cmake is searching in the correct directories, so I feel like I'm missing something else?

DEBUG output:

C:\mrc\build>cmake ..
-- [ C:/Program Files/CMake/share/cmake-3.22/Modules/FindBoost.cmake:1673 ] _boost_TEST_VERSIONS = "1.78.0;1.78;1.77.0;1.77;1.76.0;1.76;1.75.0;1.75;1.74.0;1.74;1.73.0;1.73;1.72.0;1.72;1.71.0;1.71;1.70.0;1.70"
-- [ C:/Program Files/CMake/share/cmake-3.22/Modules/FindBoost.cmake:1674 ] Boost_USE_MULTITHREADED = "TRUE"
-- [ C:/Program Files/CMake/share/cmake-3.22/Modules/FindBoost.cmake:1675 ] Boost_USE_STATIC_LIBS = <unset>
-- [ C:/Program Files/CMake/share/cmake-3.22/Modules/FindBoost.cmake:1676 ] Boost_USE_STATIC_RUNTIME = <unset>
-- [ C:/Program Files/CMake/share/cmake-3.22/Modules/FindBoost.cmake:1677 ] Boost_ADDITIONAL_VERSIONS = "1.78.0;1.78"
-- [ C:/Program Files/CMake/share/cmake-3.22/Modules/FindBoost.cmake:1678 ] Boost_NO_SYSTEM_PATHS = <unset>
-- [ C:/Program Files/CMake/share/cmake-3.22/Modules/FindBoost.cmake:1710 ] BOOST_ROOT = <unset>
-- [ C:/Program Files/CMake/share/cmake-3.22/Modules/FindBoost.cmake:1711 ] ENV{BOOST_ROOT} = <unset>
-- [ C:/Program Files/CMake/share/cmake-3.22/Modules/FindBoost.cmake:1712 ] BOOST_INCLUDEDIR = <unset>
-- [ C:/Program Files/CMake/share/cmake-3.22/Modules/FindBoost.cmake:1713 ] ENV{BOOST_INCLUDEDIR} = <unset>
-- [ C:/Program Files/CMake/share/cmake-3.22/Modules/FindBoost.cmake:1714 ] BOOST_LIBRARYDIR = "C:/Boost/boost_1_78_0/bin.v2/libs"
-- [ C:/Program Files/CMake/share/cmake-3.22/Modules/FindBoost.cmake:1715 ] ENV{BOOST_LIBRARYDIR} = <unset>
-- [ C:/Program Files/CMake/share/cmake-3.22/Modules/FindBoost.cmake:1803 ] location of version.hpp: C:/Boost/boost_1_78_0/boost/version.hpp
-- [ C:/Program Files/CMake/share/cmake-3.22/Modules/FindBoost.cmake:1843 ] Boost_VERSION = "107800"
-- [ C:/Program Files/CMake/share/cmake-3.22/Modules/FindBoost.cmake:1844 ] Boost_VERSION_STRING = "1.78.0"
-- [ C:/Program Files/CMake/share/cmake-3.22/Modules/FindBoost.cmake:1845 ] Boost_VERSION_MACRO = "107800"
-- [ C:/Program Files/CMake/share/cmake-3.22/Modules/FindBoost.cmake:1846 ] Boost_VERSION_MAJOR = "1"
-- [ C:/Program Files/CMake/share/cmake-3.22/Modules/FindBoost.cmake:1847 ] Boost_VERSION_MINOR = "78"
-- [ C:/Program Files/CMake/share/cmake-3.22/Modules/FindBoost.cmake:1848 ] Boost_VERSION_PATCH = "0"
-- [ C:/Program Files/CMake/share/cmake-3.22/Modules/FindBoost.cmake:1849 ] Boost_VERSION_COUNT = "3"
-- [ C:/Program Files/CMake/share/cmake-3.22/Modules/FindBoost.cmake:1873 ] Boost_LIB_PREFIX = ""
-- [ C:/Program Files/CMake/share/cmake-3.22/Modules/FindBoost.cmake:1874 ] Boost_NAMESPACE = "boost"
-- [ C:/Program Files/CMake/share/cmake-3.22/Modules/FindBoost.cmake:953 ] _boost_COMPILER = "-vc143;-vc142;-vc141;-vc140" (guessed)
-- [ C:/Program Files/CMake/share/cmake-3.22/Modules/FindBoost.cmake:1910 ] _boost_MULTITHREADED = "-mt"
-- [ C:/Program Files/CMake/share/cmake-3.22/Modules/FindBoost.cmake:1988 ] _boost_ARCHITECTURE_TAG = "-x64" (detected)
-- [ C:/Program Files/CMake/share/cmake-3.22/Modules/FindBoost.cmake:1992 ] _boost_RELEASE_ABI_TAG = "-"
-- [ C:/Program Files/CMake/share/cmake-3.22/Modules/FindBoost.cmake:1993 ] _boost_DEBUG_ABI_TAG = "-gd"
-- [ C:/Program Files/CMake/share/cmake-3.22/Modules/FindBoost.cmake:2053 ] _boost_LIBRARY_SEARCH_DIRS_RELEASE = "C:/Boost/boost_1_78_0/bin.v2/libs;C:/Boost/boost_1_78_0/lib;C:/Boost/boost_1_78_0/../lib;C:/Boost/boost_1_78_0/stage/lib;C:/Boost/boost_1_78_0/../lib64-msvc-14.3;C:/Boost/boost_1_78_0/../lib64-msvc-14.2;C:/Boost/boost_1_78_0/../lib64-msvc-14.1;C:/Boost/boost_1_78_0/../lib64-msvc-14.0;C:/Boost/boost_1_78_0/lib64-msvc-14.3;C:/Boost/boost_1_78_0/lib64-msvc-14.2;C:/Boost/boost_1_78_0/lib64-msvc-14.1;C:/Boost/boost_1_78_0/lib64-msvc-14.0;C:/local/boost_1_78_0/lib64-msvc-14.3;C:/local/boost_1_78_0/lib64-msvc-14.2;C:/local/boost_1_78_0/lib64-msvc-14.1;C:/local/boost_1_78_0/lib64-msvc-14.0;C:/local/boost_1_78/lib64-msvc-14.3;C:/local/boost_1_78/lib64-msvc-14.2;C:/local/boost_1_78/lib64-msvc-14.1;C:/local/boost_1_78/lib64-msvc-14.0;C:/local/boost_1_77_0/lib64-msvc-14.3;C:/local/boost_1_77_0/lib64-msvc-14.2;C:/local/boost_1_77_0/lib64-msvc-14.1;C:/local/boost_1_77_0/lib64-msvc-14.0;C:/local/boost_1_77/lib64-msvc-14.3;C:/local/boost_1_77/lib64-msvc-14.2;C:/local/boost_1_77/lib64-msvc-14.1;C:/local/boost_1_77/lib64-msvc-14.0;C:/local/boost_1_76_0/lib64-msvc-14.3;C:/local/boost_1_76_0/lib64-msvc-14.2;C:/local/boost_1_76_0/lib64-msvc-14.1;C:/local/boost_1_76_0/lib64-msvc-14.0;C:/local/boost_1_76/lib64-msvc-14.3;C:/local/boost_1_76/lib64-msvc-14.2;C:/local/boost_1_76/lib64-msvc-14.1;C:/local/boost_1_76/lib64-msvc-14.0;C:/local/boost_1_75_0/lib64-msvc-14.3;C:/local/boost_1_75_0/lib64-msvc-14.2;C:/local/boost_1_75_0/lib64-msvc-14.1;C:/local/boost_1_75_0/lib64-msvc-14.0;C:/local/boost_1_75/lib64-msvc-14.3;C:/local/boost_1_75/lib64-msvc-14.2;C:/local/boost_1_75/lib64-msvc-14.1;C:/local/boost_1_75/lib64-msvc-14.0;C:/local/boost_1_74_0/lib64-msvc-14.3;C:/local/boost_1_74_0/lib64-msvc-14.2;C:/local/boost_1_74_0/lib64-msvc-14.1;C:/local/boost_1_74_0/lib64-msvc-14.0;C:/local/boost_1_74/lib64-msvc-14.3;C:/local/boost_1_74/lib64-msvc-14.2;C:/local/boost_1_74/lib64-msvc-14.1;C:/local/boost_1_74/lib64-msvc-14.0;C:/local/boost_1_73_0/lib64-msvc-14.3;C:/local/boost_1_73_0/lib64-msvc-14.2;C:/local/boost_1_73_0/lib64-msvc-14.1;C:/local/boost_1_73_0/lib64-msvc-14.0;C:/local/boost_1_73/lib64-msvc-14.3;C:/local/boost_1_73/lib64-msvc-14.2;C:/local/boost_1_73/lib64-msvc-14.1;C:/local/boost_1_73/lib64-msvc-14.0;C:/local/boost_1_72_0/lib64-msvc-14.3;C:/local/boost_1_72_0/lib64-msvc-14.2;C:/local/boost_1_72_0/lib64-msvc-14.1;C:/local/boost_1_72_0/lib64-msvc-14.0;C:/local/boost_1_72/lib64-msvc-14.3;C:/local/boost_1_72/lib64-msvc-14.2;C:/local/boost_1_72/lib64-msvc-14.1;C:/local/boost_1_72/lib64-msvc-14.0;C:/local/boost_1_71_0/lib64-msvc-14.3;C:/local/boost_1_71_0/lib64-msvc-14.2;C:/local/boost_1_71_0/lib64-msvc-14.1;C:/local/boost_1_71_0/lib64-msvc-14.0;C:/local/boost_1_71/lib64-msvc-14.3;C:/local/boost_1_71/lib64-msvc-14.2;C:/local/boost_1_71/lib64-msvc-14.1;C:/local/boost_1_71/lib64-msvc-14.0;C:/local/boost_1_70_0/lib64-msvc-14.3;C:/local/boost_1_70_0/lib64-msvc-14.2;C:/local/boost_1_70_0/lib64-msvc-14.1;C:/local/boost_1_70_0/lib64-msvc-14.0;C:/local/boost_1_70/lib64-msvc-14.3;C:/local/boost_1_70/lib64-msvc-14.2;C:/local/boost_1_70/lib64-msvc-14.1;C:/local/boost_1_70/lib64-msvc-14.0;C:/boost/lib64-msvc-14.3;C:/boost/lib64-msvc-14.2;C:/boost/lib64-msvc-14.1;C:/boost/lib64-msvc-14.0;PATHS;C:/boost/lib;C:/boost;/sw/local/lib"
-- [ C:/Program Files/CMake/share/cmake-3.22/Modules/FindBoost.cmake:2054 ] _boost_LIBRARY_SEARCH_DIRS_DEBUG = "C:/Boost/boost_1_78_0/bin.v2/libs;C:/Boost/boost_1_78_0/lib;C:/Boost/boost_1_78_0/../lib;C:/Boost/boost_1_78_0/stage/lib;C:/Boost/boost_1_78_0/../lib64-msvc-14.3;C:/Boost/boost_1_78_0/../lib64-msvc-14.2;C:/Boost/boost_1_78_0/../lib64-msvc-14.1;C:/Boost/boost_1_78_0/../lib64-msvc-14.0;C:/Boost/boost_1_78_0/lib64-msvc-14.3;C:/Boost/boost_1_78_0/lib64-msvc-14.2;C:/Boost/boost_1_78_0/lib64-msvc-14.1;C:/Boost/boost_1_78_0/lib64-msvc-14.0;C:/local/boost_1_78_0/lib64-msvc-14.3;C:/local/boost_1_78_0/lib64-msvc-14.2;C:/local/boost_1_78_0/lib64-msvc-14.1;C:/local/boost_1_78_0/lib64-msvc-14.0;C:/local/boost_1_78/lib64-msvc-14.3;C:/local/boost_1_78/lib64-msvc-14.2;C:/local/boost_1_78/lib64-msvc-14.1;C:/local/boost_1_78/lib64-msvc-14.0;C:/local/boost_1_77_0/lib64-msvc-14.3;C:/local/boost_1_77_0/lib64-msvc-14.2;C:/local/boost_1_77_0/lib64-msvc-14.1;C:/local/boost_1_77_0/lib64-msvc-14.0;C:/local/boost_1_77/lib64-msvc-14.3;C:/local/boost_1_77/lib64-msvc-14.2;C:/local/boost_1_77/lib64-msvc-14.1;C:/local/boost_1_77/lib64-msvc-14.0;C:/local/boost_1_76_0/lib64-msvc-14.3;C:/local/boost_1_76_0/lib64-msvc-14.2;C:/local/boost_1_76_0/lib64-msvc-14.1;C:/local/boost_1_76_0/lib64-msvc-14.0;C:/local/boost_1_76/lib64-msvc-14.3;C:/local/boost_1_76/lib64-msvc-14.2;C:/local/boost_1_76/lib64-msvc-14.1;C:/local/boost_1_76/lib64-msvc-14.0;C:/local/boost_1_75_0/lib64-msvc-14.3;C:/local/boost_1_75_0/lib64-msvc-14.2;C:/local/boost_1_75_0/lib64-msvc-14.1;C:/local/boost_1_75_0/lib64-msvc-14.0;C:/local/boost_1_75/lib64-msvc-14.3;C:/local/boost_1_75/lib64-msvc-14.2;C:/local/boost_1_75/lib64-msvc-14.1;C:/local/boost_1_75/lib64-msvc-14.0;C:/local/boost_1_74_0/lib64-msvc-14.3;C:/local/boost_1_74_0/lib64-msvc-14.2;C:/local/boost_1_74_0/lib64-msvc-14.1;C:/local/boost_1_74_0/lib64-msvc-14.0;C:/local/boost_1_74/lib64-msvc-14.3;C:/local/boost_1_74/lib64-msvc-14.2;C:/local/boost_1_74/lib64-msvc-14.1;C:/local/boost_1_74/lib64-msvc-14.0;C:/local/boost_1_73_0/lib64-msvc-14.3;C:/local/boost_1_73_0/lib64-msvc-14.2;C:/local/boost_1_73_0/lib64-msvc-14.1;C:/local/boost_1_73_0/lib64-msvc-14.0;C:/local/boost_1_73/lib64-msvc-14.3;C:/local/boost_1_73/lib64-msvc-14.2;C:/local/boost_1_73/lib64-msvc-14.1;C:/local/boost_1_73/lib64-msvc-14.0;C:/local/boost_1_72_0/lib64-msvc-14.3;C:/local/boost_1_72_0/lib64-msvc-14.2;C:/local/boost_1_72_0/lib64-msvc-14.1;C:/local/boost_1_72_0/lib64-msvc-14.0;C:/local/boost_1_72/lib64-msvc-14.3;C:/local/boost_1_72/lib64-msvc-14.2;C:/local/boost_1_72/lib64-msvc-14.1;C:/local/boost_1_72/lib64-msvc-14.0;C:/local/boost_1_71_0/lib64-msvc-14.3;C:/local/boost_1_71_0/lib64-msvc-14.2;C:/local/boost_1_71_0/lib64-msvc-14.1;C:/local/boost_1_71_0/lib64-msvc-14.0;C:/local/boost_1_71/lib64-msvc-14.3;C:/local/boost_1_71/lib64-msvc-14.2;C:/local/boost_1_71/lib64-msvc-14.1;C:/local/boost_1_71/lib64-msvc-14.0;C:/local/boost_1_70_0/lib64-msvc-14.3;C:/local/boost_1_70_0/lib64-msvc-14.2;C:/local/boost_1_70_0/lib64-msvc-14.1;C:/local/boost_1_70_0/lib64-msvc-14.0;C:/local/boost_1_70/lib64-msvc-14.3;C:/local/boost_1_70/lib64-msvc-14.2;C:/local/boost_1_70/lib64-msvc-14.1;C:/local/boost_1_70/lib64-msvc-14.0;C:/boost/lib64-msvc-14.3;C:/boost/lib64-msvc-14.2;C:/boost/lib64-msvc-14.1;C:/boost/lib64-msvc-14.0;PATHS;C:/boost/lib;C:/boost;/sw/local/lib"
CMake Warning at C:/Program Files/CMake/share/cmake-3.22/Modules/FindBoost.cmake:1369 (message):
  New Boost version may have incorrect or missing dependencies and imported
  targets
Call Stack (most recent call first):
  C:/Program Files/CMake/share/cmake-3.22/Modules/FindBoost.cmake:1492 (_Boost_COMPONENT_DEPENDENCIES)
  C:/Program Files/CMake/share/cmake-3.22/Modules/FindBoost.cmake:2102 (_Boost_MISSING_DEPENDENCIES)
  CMakeLists.txt:71 (find_package)


-- [ C:/Program Files/CMake/share/cmake-3.22/Modules/FindBoost.cmake:2239 ] Searching for PROGRAM_OPTIONS_LIBRARY_RELEASE: boost_program_options-vc143-mt-x64-1_78;boost_program_options-vc143-mt-x64;boost_program_options-vc143-mt;boost_program_options-vc142-mt-x64-1_78;boost_program_options-vc142-mt-x64;boost_program_options-vc142-mt;boost_program_options-vc141-mt-x64-1_78;boost_program_options-vc141-mt-x64;boost_program_options-vc141-mt;boost_program_options-vc140-mt-x64-1_78;boost_program_options-vc140-mt-x64;boost_program_options-vc140-mt;boost_program_options-mt-x64-1_78;boost_program_options-mt-x64;boost_program_options-mt;boost_program_options-mt;boost_program_options
-- [ C:/Program Files/CMake/share/cmake-3.22/Modules/FindBoost.cmake:2294 ] Searching for PROGRAM_OPTIONS_LIBRARY_DEBUG: boost_program_options-vc143-mt-gd-x64-1_78;boost_program_options-vc143-mt-gd-x64;boost_program_options-vc143-mt-gd;boost_program_options-vc142-mt-gd-x64-1_78;boost_program_options-vc142-mt-gd-x64;boost_program_options-vc142-mt-gd;boost_program_options-vc141-mt-gd-x64-1_78;boost_program_options-vc141-mt-gd-x64;boost_program_options-vc141-mt-gd;boost_program_options-vc140-mt-gd-x64-1_78;boost_program_options-vc140-mt-gd-x64;boost_program_options-vc140-mt-gd;boost_program_options-mt-gd-x64-1_78;boost_program_options-mt-gd-x64;boost_program_options-mt-gd;boost_program_options-mt;boost_program_options
CMake Error at C:/Program Files/CMake/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
  Could NOT find Boost (missing: program_options) (found suitable version
  "1.78.0", minimum required is "1.70.0")
Call Stack (most recent call first):
  C:/Program Files/CMake/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake:594 (_FPHSA_FAILURE_MESSAGE)
  C:/Program Files/CMake/share/cmake-3.22/Modules/FindBoost.cmake:2360 (find_package_handle_standard_args)
  CMakeLists.txt:71 (find_package)
Dharman
  • 30,962
  • 25
  • 85
  • 135
Matt
  • 63
  • 1
  • 8
  • 3
    cmake seems to think you're using visual studio `_boost_COMPILER = "-vc143;-vc142;-vc141;-vc140" (guessed)` so is probably looking for visual studio boost libraries – Alan Birtles Mar 22 '22 at 08:29
  • Make sure all parts (CMake, bootstrap, b2, ...) see and use *the same toolchain*. This can be quite tricky on Windows... – DevSolar Mar 22 '22 at 08:32
  • Solution that worked for me: Packaged boost version - https://sourceforge.net/projects/boost/files/boost-binaries/1.78.0/ – Matt Mar 22 '22 at 10:50
  • @AlanBirtles redid building the boost library "program_options" with gcc but to no effect. Should have noticed the comment on the boost website "Other command shells, such as MinGW's MSYS, are not supported—they may or may not work" – Matt Mar 22 '22 at 10:54
  • 1
    I don't think you needed to rebuild boost, just needed to make sure that cmake is configured to use gcc (or just use MSVC, it'll cause you far fewer problems than using MINGW) – Alan Birtles Mar 22 '22 at 11:52
  • Solutions go in the answer space below, not in the question. Do not add SOLVED to your question – Dharman Mar 22 '22 at 12:03
  • See this post and answers: https://stackoverflow.com/questions/66000702/howto-use-cmake-with-boost-asio/73748656, good luck! – Oded R. Sep 18 '22 at 13:44

1 Answers1

0

It actually tells you: set(BOOST_LIBRARYDIR <DIR>)

Translation: Open Boost folder and point to directory called Library.

Also this bit: (Required is at least version "1.70.0")

You appear to be using 1.78!

Boost should also be set in your environment variables:

  • (Name) BOOST_ROOT
  • (Value) C:\local\boost_1_70_0
Keivan
  • 1,300
  • 1
  • 16
  • 29
Corky
  • 1
  • 1