【问题标题】:cmake find_package: why cannot find some components in boostcmake find_package:为什么在boost中找不到某些组件
【发布时间】:2022-01-19 05:24:04
【问题描述】:

Find_package 命令对我来说是一场噩梦。 我正在尝试在我的项目中包含一些指定的组件。 对于不同的错误,使用 find_package 命令找不到某些组件。 谁能帮忙解释报告的错误?

案例一:

cmake_minimum_required(VERSION 3.15)
project(tryBoost)

set(CMAKE_CXX_STANDARD 14)

set(BOOST_ROOT "D:\\cygwin64\\home\\yubo\\boost_1_62_0") # either set it here or from the command line
find_package(Boost 1.62.0 REQUIRED COMPONENTS json) # header only libraries must not be added here
add_executable(tryBoost main.cpp)

我尝试查找json,但是报错: 没有为 json 定义头文件;跳过标题检查

案例2:

cmake_minimum_required(VERSION 3.15)
project(tryBoost)

set(CMAKE_CXX_STANDARD 14)

set(BOOST_ROOT "D:\\cygwin64\\home\\yubo\\boost_1_62_0") # either set it here or from the command line
find_package(Boost 1.62.0 REQUIRED COMPONENTS system) # header only libraries must not be added here
add_executable(tryBoost main.cpp)

我试图找到system,但是报错: 找不到 Boost(缺少:Boost_INCLUDE_DIR 系统)

boost 如何在子目录中组织其组件?扫描 boost 根目录时 find_package 命令如何工作?为什么“不能在此处添加仅标头库”。

谢谢。

【问题讨论】:

  • 制作set( Boost_DEBUG ON) 应该会打印出更多信息。
  • 你刚刚下载/解压了 boost 吗?你必须构建它。
  • @Jellyboy 它很有用,通过调试我解决了第一个问题:boost1.62.0 中不包含 json.hpp。我应该使用更高版本,例如 boost1.78.0。 -----稍后我将在cygwin上构建它以检查第二个问题。

标签: c++ boost


【解决方案1】:

请使用下面的 CMakeList.txt 作为参考。

cmake_minimum_required(VERSION 3.15)
project(tryBoost)

set(CMAKE_CXX_STANDARD 14)
#set(Boost_DEBUG ON)

set(Boost_USE_STATIC_LIBS ON)
set(Boost_USE_MULTITHREADED ON)

set(BOOST_ROOT "/home/yubo/boost_1_78_0")

add_executable(tryBoost main.cpp)


set(Boost_NO_BOOST_CMAKE FALSE CACHE BOOL "" FORCE)
find_package(Boost 1.78.0 REQUIRED COMPONENTS json)
message("${Boost_FOUND}")

message("Boost_INCLUDE_DIRS: ${Boost_INCLUDE_DIRS}")
target_include_directories(tryBoost PUBLIC ${Boost_INCLUDE_DIRS})

message("Boost_LIBRARY_DIRS: ${Boost_LIBRARY_DIRS}")
message("Boost_LIBRARIES: ${Boost_LIBRARIES}")
target_link_libraries(tryBoost  ${Boost_LIBRARIES})

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-19
    • 2018-02-06
    • 1970-01-01
    • 1970-01-01
    • 2022-12-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多