C++ 未找到CMake Boost多精度

C++ 未找到CMake Boost多精度,c++,boost,cmake,C++,Boost,Cmake,这是我的CMakeLists.txt文件 cmake_minimum_required(VERSION 3.8) project("pi-calc" VERSION 1.0) find_package(Boost REQUIRED COMPONENTS multiprecision) add_executable(pi-calc main.cpp) target_link_libraries(pi-calc PRIVATE Boost::boost Boost::multiprecision)

这是我的CMakeLists.txt文件

cmake_minimum_required(VERSION 3.8)
project("pi-calc" VERSION 1.0)

find_package(Boost REQUIRED COMPONENTS multiprecision)
add_executable(pi-calc main.cpp)
target_link_libraries(pi-calc PRIVATE Boost::boost Boost::multiprecision)
这是错误消息的主要部分,删除CMake find_包失败调用堆栈

Could NOT find Boost (missing: multiprecision) (found version "1.67.0")

我试着在谷歌上搜索解决方案,但什么也找不到。

Boost的许多库都是只包含标题的库,包括
多精度库。您只需显式调用列表中所示的
组件
中不只是标题的库

如果您需要一个只包含标题的库,例如
multiprecision
,您将从包含所有Boost标题的
Boost::Boost
目标免费获得此库。无需列出任何
组件

cmake_minimum_required(VERSION 3.8)
project("pi-calc" VERSION 1.0)

find_package(Boost REQUIRED)
add_executable(pi-calc main.cpp)
target_link_libraries(pi-calc PRIVATE Boost::boost)

注意,在CMake版本3.15和更高版本中,您应该改用target,它取代了
Boost::Boost
target

在CMake 3.8中使用Boost::headers是可能的,甚至是推荐的吗?Boost::headers目标是在哪个版本的CMake中引入的。@Toothers204在CMake 3.15中引入了
Boost::headers
目标,因此如果您使用的是早期版本,则应使用
Boost::Boost
。我会用这些信息更新我的回复。