【问题标题】:CMake Error while using find_package(Boost ... ) in CMakeLists.txt: No suitable build variant has been found在 CMakeLists.txt 中使用 find_package(Boost ... ) 时出现 CMake 错误:未找到合适的构建变体
【发布时间】:2020-04-10 17:51:43
【问题描述】:

使用 CMake 时,调用find_package(Boost 1.6 COMPONENTS program_options thread system REQUIRED) 时出现以下错误:

-- Boost include dirs: C:/dev/boost/include/boost-1_72
-- Boost libraries:
Boost library
-- Found Boost 1.72.0 at C:/dev/boost/lib/cmake/Boost-1.72.0
--   Requested configuration: QUIET REQUIRED COMPONENTS program_options;thread;system
-- BoostConfig: find_package(boost_headers 1.72.0 EXACT CONFIG REQUIRED QUIET HINTS C:/dev/boost/lib/cmake)
-- BoostConfig: find_package(boost_program_options 1.72.0 EXACT CONFIG REQUIRED QUIET HINTS C:/dev/boost/lib/cmake)
-- Found boost_program_options 1.72.0 at C:/dev/boost/lib/cmake/boost_program_options-1.72.0
-- Boost toolset is vc142 (MSVC 19.25.28612.0)
-- Scanning C:/dev/boost/lib/cmake/boost_program_options-1.72.0/libboost_program_options-variant*.cmake
--   Including C:/dev/boost/lib/cmake/boost_program_options-1.72.0/libboost_program_options-variant-vc142-mt-gd-x32-1_72-static.cmake
--   [ ] libboost_program_options-vc142-mt-gd-x32-1_72.lib
--   Including C:/dev/boost/lib/cmake/boost_program_options-1.72.0/libboost_program_options-variant-vc142-mt-gd-x64-1_72-static.cmake
--   [ ] libboost_program_options-vc142-mt-gd-x64-1_72.lib
--   Including C:/dev/boost/lib/cmake/boost_program_options-1.72.0/libboost_program_options-variant-vc142-mt-x32-1_72-static.cmake
--   [ ] libboost_program_options-vc142-mt-x32-1_72.lib
--   Including C:/dev/boost/lib/cmake/boost_program_options-1.72.0/libboost_program_options-variant-vc142-mt-x64-1_72-static.cmake
--   [ ] libboost_program_options-vc142-mt-x64-1_72.lib
CMake Error at C:/dev/boost/lib/cmake/Boost-1.72.0/BoostConfig.cmake:120 (find_package):
  Found package configuration file:

    C:/dev/boost/lib/cmake/boost_program_options-1.72.0/boost_program_options-config.cmake

  but it set boost_program_options_FOUND to FALSE so package
  "boost_program_options" is considered to be NOT FOUND.  Reason given by
  package:

  No suitable build variant has been found.

  The following variants have been tried and rejected:

  * libboost_program_options-vc142-mt-gd-x32-1_72.lib (32 bit, need 64)

  * libboost_program_options-vc142-mt-gd-x64-1_72.lib (static,
  Boost_USE_STATIC_LIBS=OFF)

  * libboost_program_options-vc142-mt-x32-1_72.lib (32 bit, need 64)

  * libboost_program_options-vc142-mt-x64-1_72.lib (static,
  Boost_USE_STATIC_LIBS=OFF)

Call Stack (most recent call first):
  C:/dev/boost/lib/cmake/Boost-1.72.0/BoostConfig.cmake:185 (boost_find_component)
  C:/dev/cmake-3.17.0-win64-x64/share/cmake-3.17/Modules/FindBoost.cmake:444 (find_package)
  CMakeLists.txt:79 (find_package)


-- Configuring incomplete, errors occurred!
See also "C:/Users/sbreuer/Documents/Uni/Praktikum/SunFlower/Simulation/code/build/CMakeFiles/CMakeOutput.log".
See also "C:/Users/sbreuer/Documents/Uni/Praktikum/SunFlower/Simulation/code/build/CMakeFiles/CMakeError.log".

我不明白这里的问题。我为includelib 目录添加了环境变量。我正在使用 CMake 3.17.0 和 Boost 1.72.0

【问题讨论】:

    标签: boost cmake


    【解决方案1】:

    错误的重要部分在这里:

      No suitable build variant has been found.
    
      The following variants have been tried and rejected:
    
      * libboost_program_options-vc142-mt-gd-x32-1_72.lib (32 bit, need 64)
    
      * libboost_program_options-vc142-mt-gd-x64-1_72.lib (static,
      Boost_USE_STATIC_LIBS=OFF)
    
      * libboost_program_options-vc142-mt-x32-1_72.lib (32 bit, need 64)
    
      * libboost_program_options-vc142-mt-x64-1_72.lib (static,
      Boost_USE_STATIC_LIBS=OFF)
    

    它显示了找到的库,并给出了它们被拒绝的原因。这里的所有库都是静态的,如其名称上的lib 前缀所示。但是,您的 CMake 配置表明您确实想要使用静态库 (Boost_USE_STATIC_LIBS=OFF)。要修复错误,您有两种选择:

    1. Boost_USE_STATIC_LIBS 设置为ON

      set(Boost_USE_STATIC_LIBS ON)
      find_package(Boost 1.6 COMPONENTS program_options thread system REQUIRED)
      
    2. 构建共享 Boost 库,因此不仅可以使用静态库。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-05-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-14
      • 1970-01-01
      • 2021-08-06
      • 1970-01-01
      相关资源
      最近更新 更多