繁体   English   中英

如何将 Boost Log 与 CMake 一起使用? Find_Package 错误

[英]How can I use Boost Log with CMake? Find_Package Error

我正在尝试在 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 output:

  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.

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

我不确定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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM