[英]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.