簡體   English   中英

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

[英]CMake - Could NOT find Boost (missing: serialization) (found version “1.73.0”

我已經在我的項目中使用 Boost 有一段時間了,但直到現在,我只使用了僅標頭庫。 我現在想使用序列化,但是當我嘗試將序列化添加為 REQUIRED 組件時,我得到標題中寫的錯誤。

這是我的 CMAKE 文件:

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 文件時產生的完整錯誤

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 作為我的編譯器。

我最終使用了一個名為 vcpkg 的 C++ package 管理器來安裝 Boost:x64-windows,然后正確地找到了 Boost 和相應的組件。 如何安裝它的說明可以在這里找到: https://github.com/Microsoft/vcpkg

安裝后,可以使用以下命令安裝 64 位 Boost:

.\vcpkg.exe install boost:x64-windows

我仍然不知道 CMake 的原始問題是什么,我確信有一種方法可以在不使用 package 管理器的情況下解決它,但對於那些可以使用 ZEFE90A8E604A7C8B7D8Z 管理器的人來說,這是一個解決方案。

編輯

發現這仍然沒有完全解決我的問題,並導致其他問題。 我找到了一個不使用 package 管理器的完整解決方案,並將其發布在我對這個問題的回答中: Undefined reference errors in simple boost serialization

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM