簡體   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