Cmake和boost错误找不到boost(缺少:program_options)



我知道这个问题似乎经常出现,但我还没有找到解决我问题的线程。如果这是一个重复的问题,如果你能把我链接到正确的线程,我将不胜感激:(

简介:我正在尝试安装https://github.com/mhekkel/mrc但是cmake对我的boost版本不满意。

cmake版本:3.22.1

Boost版本:1.78.0

作为c++编译器,我使用的是mingw(根据这里的一些线程可能是相关的(,所以我在这篇文章之后安装了boost库:https://gist.github.com/sim642/29caef3cc8afaa273ce6#project-设置

然后,我编译了boost所描述的program_options包(https://www.boost.org/doc/libs/1_78_0/more/getting_started/windows.html#prepare-使用

bootstrap
.b2 package_options

最初我得到以下错误:

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")

因此,我更改了CMakeList.txt并添加了:set(Boost_ADDITIONAL_VERSIONS 1.78.0 1.78)

现在cmake找到了提升,但没有找到所需的库程序选项

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)`

然后,我尝试设置库方向:set(BOOST_LIBRARYDIR <DIR>),但没有成功。

使用set(Boost_DEBUG ON),我可以看到cmake正在正确的目录中搜索,所以我觉得我错过了其他东西?

调试输出:

C:mrcbuild>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)

它实际上告诉您:set(BOOST_LIBRARYDIR <DIR>)

翻译:打开Boost文件夹并指向名为Library的目录。

还有这个位:(Required is at least version "1.70.0")

你似乎在使用1.78!

Boost也应该在您的环境变量中设置:

  • (名称(BOOST_ROOT
  • (值(C:\local\boost_1_70_0

最新更新