title:
aliases:
tags:
- cmake
- boost
category:
- 方法
stars:
url:
creation-time: 2023-10-13 09:46
modification-time: 2023-10-14 11:00:47
在此之前,我们已经 [[使用mingw-w64编译Boost]]。
然后,我们来编写项目的 CMakeList
文件。
定义好关键的变量:
set(BOOST_ROOT "C:/Program Files/boost_1_83_0")
set(Boost_DIR "${BOOST_ROOT}/tools/cmake/config")
set(BOOST_LIBRARYDIR "${BOOST_ROOT}/stage/lib")
set(BOOST_INCLUDEDIR "${BOOST_ROOT}/boost")
set(boost_headers_DIR "${BOOST_LIBRARYDIR}/cmake/boost_headers-1.83.0")
这里面包括了可能用到的 .cmake
文件、头文件以及库文件的根目录。
然后,我们开始配置要调用的库中模块,这里通过了循环添加模块的路径来简化配置。
list(APPEND boost_libs "filesystem" "locale")
如上所示,假如我们想添加 filesystem
和 locale
两个模块。当然我们可以加很多个,直接配置在 boost_libs
这个列表中。
FOREACH(lib ${boost_libs})
message(${lib})
set(boost_${lib}_DIR "${BOOST_LIBRARYDIR}/cmake/boost_${lib}-1.83.0")
ENDFOREACH(lib)
然后,我们循环遍历 boost_libs
中的模块名,并将对应的路径设置成对应的变量中。
find_package(
Boost
COMPONENTS ${boost_libs}
REQUIRED NO_MODULE)
message(STATUS "Boost_LIBRARIES = ${Boost_LIBRARIES}")
message(STATUS "Boost_INCLUDE_DIRS = ${Boost_INCLUDE_DIRS}")
将路径都定义完成后,我们使用 find_package
命令自动将 boost_libs
列表中所有的库都加入到编译配置中。
最后,加入头文件的目录以及将执行文件链接到库。
include_directories(${BOOST_INCLUDEDIR})
set(SOURCES main.cc xxx.cc xxx.cc)
add_executable(exe ${SOURCES})
target_link_libraries(exe ${Boost_LIBRARIES})
Reference
VsCode + mingw编译器下boost库的安装 - Fight!GO - 博客园 (cnblogs.com)
C++ Boost 库 Windows 环境 GCC 编译安装及 CMake 相关配置_boost cmake_PeakCrosser的博客-CSDN博客
【CMake 语法】(7) CMake 列表操作-CSDN博客 LIST
标签:set,cmake,找到,boost,Boost,libs,BOOST From: https://www.cnblogs.com/pomolnc/p/17763825.html