首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >CMake -找不到Boost (缺少:序列化)(找到版本"1.73.0“)

CMake -找不到Boost (缺少:序列化)(找到版本"1.73.0“)
EN

Stack Overflow用户
提问于 2020-05-24 17:01:43
回答 1查看 2.4K关注 0票数 2

我在我的项目中使用Boost已经有一段时间了,不过到目前为止,我只使用标头库。现在我想使用序列化,但是当我尝试将序列化添加为必需的组件时,我会得到在标题中写入的错误。

这是我的CMAKE文件:

代码语言:javascript
运行
复制
cmake_minimum_required(VERSION 3.15)
project(GinRummyCPP)

SET(CMAKE_INCLUDE_PATH ${CMAKE_INCLUDE_PATH} "D:/Program Files/boost/boost_1_73_0")
SET(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} "D:/Program Files/boost/boost_1_73_0/libs")
set(CMAKE_CXX_STANDARD 17)
find_package(Boost COMPONENTS serialization)
add_executable(GinRummyCPP main.cpp)
if(Boost_FOUND)
    include_directories(${Boost_INCLUDE_DIRS})
    target_link_libraries(GinRummyCPP ${Boost_LIBRARIES})
endif()

我检查了我的Boost文件夹,序列化位于"D:\Program Files\boost\boost_1_73_0\libs\serialization“

我尝试过设置BOOST_ROOT和其他相关变量,但似乎没有什么效果。

以下是加载CMake文件时产生的全部错误

代码语言:javascript
运行
复制
CMake Warning at C:/Program Files/JetBrains/CLion 2019.3.2/bin/cmake/win/share/cmake-3.15/Modules/FindBoost.cmake:1144 (message):
  New Boost version may have incorrect or missing dependencies and imported
  targets
Call Stack (most recent call first):
  C:/Program Files/JetBrains/CLion 2019.3.2/bin/cmake/win/share/cmake-3.15/Modules/FindBoost.cmake:1266 (_Boost_COMPONENT_DEPENDENCIES)
  C:/Program Files/JetBrains/CLion 2019.3.2/bin/cmake/win/share/cmake-3.15/Modules/FindBoost.cmake:1904 (_Boost_MISSING_DEPENDENCIES)
  CMakeLists.txt:7 (find_package)


-- Could NOT find Boost (missing: serialization) (found version "1.73.0")
-- Configuring done
-- Generating done
-- Build files have been written to: D:/Documents/GinRummyCPP/cmake-build-release-mingw-64

不确定这是否相关,但我使用CLion作为我的IDE,使用mingw-w64作为我的编译器。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-25 16:35:04

最后,我使用了一个名为vcpkg的C++包管理器来安装Boost:x64-windows,并在此之后正确地找到了适当的组件。关于如何安装它的说明可以在这里找到:https://github.com/Microsoft/vcpkg

安装它之后,可以使用以下命令安装64位Boost:

.\vcpkg.exe install boost:x64-windows

我仍然不知道CMake最初的问题是什么,而且我确信有一种方法可以不使用包管理器来修复它,但是对于那些可以使用包管理器的人来说,这是一个解决方案。

编辑

发现这仍然没有完全解决我的问题,并导致了其他问题。我找到了一个不使用包管理器的完整解决方案,并将其发布在我对以下问题的回答中:Undefined reference errors in simple boost serialization

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61989414

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档