[英]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_options
、 system
和filesystem
包的文件。
我不確定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.