Cmake 引用boost库时报错 Could NOT find Boost (missing: filesystem)


在cmake中运行报错, missing: Boost_INCLUDE_DIR, 这个是boost 头文件所在路径。
具体可参考https://cmake.org/cmake/help/latest/module/FindBoost.html?highlight=findboost
CMake Error at D:/CMake/share/cmake-3.23/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
Could NOT find Boost (missing: Boost_INCLUDE_DIR filesystem) (Required is
at least version "1.54")
Call Stack (most recent call first):
D:/CMake/share/cmake-3.23/Modules/FindPackageHandleStandardArgs.cmake:594 (_FPHSA_FAILURE_MESSAGE)
D:/CMake/share/cmake-3.23/Modules/FindBoost.cmake:2375 (find_package_handle_standard_args)
CMakeLists.txt:19 (find_package)
set(BOOST_ROOT "D:/Boost/boost_1_78_0")set(BOOST_INCLUDEDIR "D:/Boost/boost_1_78_0/boost")set(BOOST_LIBRARYDIR "D:/Boost/boost_1_78_0/stage/lib")
cmake -D BOOST_ROOT= "D:/Boost/boost_1_78_0"
cmake -D BOOST_INCLUDEDIR="D:/Boost/boost_1_78_0/boost" -D BOOST_LIBRARYDIR="D:/Boost/boost_1_78_0/stage/lib"
继续执行发现报错
Could NOT find Boost (missing: filesystem) (found suitable version
"1.78.0", minimum required is "1.54")
为了更加清楚发现问题,打开boost debug,再次执行源程序
set(Boost_DEBUG ON)set(BOOST_ROOT "D:/Boost/boost_1_78_0")set(BOOST_INCLUDEDIR "D:/Boost/boost_1_78_0/boost")set(BOOST_LIBRARYDIR "D:/Boost/boost_1_78_0/stage/lib")find_package(Boost 1.54 REQUIRED COMPONENTS filesystem)
Searching for FILESYSTEM_LIBRARY_RELEASE: boost_filesystem-mgw11-mt-1_78;boost_filesystem-mgw11-mt;boost_filesystem-mgw11-mt;boost_filesystem-mt-1_78;boost_filesystem-mt;boost_filesystem-mt;boost_filesystem-mt;boost_filesystemSearching for FILESYSTEM_LIBRARY_DEBUG: boost_filesystem-mgw11-mt-d-1_78;boost_filesystem-mgw11-mt-d;boost_filesystem-mgw11-mt-d;boost_filesystem-mt-d-1_78;boost_filesystem-mt-d;boost_filesystem-mt-d;boost_filesystem-mt;boost_filesystem

于是我们添加Boost_LIB_PREFIX 和 Boost_ARCHITECTURE,具体含义详见(两次红色的变化,多了lib前缀,x64后缀)
https://cmake.org/cmake/help/latest/module/FindBoost.html?highlight=findboost
set(Boost_DEBUG ON)set(BOOST_ROOT "D:/Boost/boost_1_78_0")set(BOOST_INCLUDEDIR "D:/Boost/boost_1_78_0/boost")set(BOOST_LIBRARYDIR "D:/Boost/boost_1_78_0/stage/lib")set(Boost_LIB_PREFIX "lib")set(Boost_ARCHITECTURE "-x64")
find_package(Boost 1.54 REQUIRED COMPONENTS filesystem)
Searching for FILESYSTEM_LIBRARY_RELEASE: libboost_filesystem-mgw11-mt-x64-1_78;libboost_filesystem-mgw11-mt-x64;libboost_filesystem-mgw11-mt;libboost_filesystem-mt-x64-1_78;libboost_filesystem-mt-x64;libboost_filesystem-mt;libboost_filesystem-mt;libboost_filesystem
Searching for FILESYSTEM_LIBRARY_DEBUG: libboost_filesystem-mgw11-mt-d-x64-1_78;libboost_filesystem-mgw11-mt-d-x64;libboost_filesystem-mgw11-mt-d;libboost_filesystem-mt-d-x64-1_78;libboost_filesystem-mt-d-x64;libboost_filesystem-mt-d;libboost_filesystem-mt;libboost_filesystem
-- Found Boost: D:/Boost/boost_1_78_0 (found suitable version "1.78.0", minimum required is "1.54") found components: filesystem
-- boost include dirs: D:/Boost/boost_1_78_0
-- boost library dirs: D:/Boost/boost_1_78_0/stage/lib
-- Configuring done
-- Generating done
-- Build files have been written to: E:/computer_project/cmake-cookbook/chapter-03/recipe-08/cxx-example/build
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix