【问题标题】:How can I use Boost Log with CMake? Find_Package Error如何在 CMake 中使用 Boost Log? Find_Package 错误
【发布时间】:2021-08-06 19:14:28
【问题描述】:

我正在尝试在 CMake 项目中使用 Boost 日志,但在重新加载 CMake 时出现错误。

这是我的 CMake:

CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
PROJECT(MyProject)
add_executable(MyProject)

FIND_PACKAGE(Boost COMPONENTS program_options system log filesystem REQUIRED)

if (Boost_FOUND)
    include_directories(${Boost_INCLUDE_DIRS})

    LIST(APPEND CMAKE_CXX_FLAGS "-Wall -O3")

    TARGET_LINK_LIBRARIES(MyProject ${Boost_LIBRARIES}

endif ()

在我将 log 添加到 FIND_PACKAGES() 之前,一切都运行良好

现在,在将 log 添加到 FIND_PACKAGES 之后,我得到以下 CMake 输出:

  Could not find a package configuration file provided by "boost_log"
  (requested version 1.71.0) with any of the following names:

    boost_logConfig.cmake
    boost_log-config.cmake

  Add the installation prefix of "boost_log" to CMAKE_PREFIX_PATH or set
  "boost_log_DIR" to a directory containing one of the above files.  If
  "boost_log" provides a separate development package or SDK, be sure it has
  been installed.

我在任何地方都找不到log 的那些文件 (-config.cmake),而且我不知道如何获取它们。我确实有 program_optionssystemfilesystem 包的这些文件。

【问题讨论】:

  • CMAKE_MINIMUM_REQUIRED(VERSION 2.8) 使用 boost-1.71 很奇怪
  • 我实际上运行的是 3.19.2 版本。
  • 将此值设置得太低会导致不同的行为。 CMake 2.8 于 2009 年发布
  • 我已尝试更新值无济于事。

标签: c++ boost cmake


【解决方案1】:

我不确定CMAKE_MINIMUM_REQUIRED(VERSION 2.8)。但是,对于它的价值,我使用:

cmake_minimum_required (VERSION 3.12)
cmake_policy(SET CMP0074 NEW)

CMP0074。这可能是您的问题的一部分。

在你的位置我也会使用:

project (MyProject)

add_executable(${PROJECT_NAME} MyProjectMain.cpp}

target_compile_options(${PROJECT_NAME} PRIVATE -Wall -O3)

find_package(Boost REQUIRED COMPONENTS system filesystem program_options log_setup log)
if (Boost_FOUND)
    target_include_directories(${PROJECT_NAME} PUBLIC ${Boost_INCLUDE_DIRS})
    target_link_libraries(${PROJECT_NAME}
      PRIVATE
      Boost::system
      Boost::filesystem
      Boost::program_options
      Boost::log_setup
      Boost::log)

endif ()

这使用了相对较新的target_* CMake 指令并且适用于我,请参阅:CMakeLists.txt

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-07
    • 2023-03-31
    • 1970-01-01
    • 2019-05-18
    • 1970-01-01
    相关资源
    最近更新 更多