首页 > 其他分享 >如何让cmake找到boost库

如何让cmake找到boost库

时间:2023-10-14 11:13:26浏览次数:46  
标签:set cmake 找到 boost Boost libs BOOST

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")

如上所示,假如我们想添加 filesystemlocale 两个模块。当然我们可以加很多个,直接配置在 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

相关文章

  • posh-git无法找到问题
    报错原因:第一次安装是下载原文件的方式安装的,清理c盘的时候不小心删掉了posh-git文件,直接导致打开PowerShell报错,也就是标题↑(报错界面忘记截图了)解决办法:1.https://github.com/dahlbyk/posh-git/blob/v0/README.md2.https://git-scm.com/book/zh/v2/%E9%99%84%E5%BD%95-A%3A-......
  • cmake语言中获取除去某文件的其他所有文件
    title:aliases:tags:-cmakecategory:-方法stars:url:creation-time:2023-10-1214:54modification-time:2023-10-1215:04:12场景对整个项目进行了编译选项设置,把所有警告当做了错误。但是使用一些短小的开源库时,开发者写的并不是很严谨。所以希望这些库......
  • CMake匹配不带扩展名的头文件
    要在CMake中匹配不带扩展名的头文件,可以使用file(GLOB...)和正则表达式来过滤结果。以下是一种方法,该方法首先收集目录下的所有文件,然后使用list(FILTER...)命令和正则表达式来只保留没有扩展名的文件:#使用GLOB收集目录下的所有文件file(GLOBALL_FILES"${CMAKE_CURRENT......
  • cmakelist文件format
    这里主要是希望在vscode中编写CMakeList.txt过程中,对[[cmake]]语言进行format处理。首先在vscode中安装cmake-format插件cmake-format-VisualStudioMarketplace然后需要安装cmake-format.exe程序。这里需要使用[[Python]]进行安装:pipinstallcmake_forma......
  • vscode交叉编译cmake工程,toolchains设置
    在VisualStudioCode中编译CMake项目时,使用自定义工具链(toolchains)可以很有用,特别是当你需要交叉编译或使用不同的编译器时。以下是在VisualStudioCode中使用自定义工具链的一般步骤,以aarch64的嵌入式为例:创建自定义工具链文件:首先,你需要创建一个包含有关你的自定义工具链......
  • 使用CEF(六)— 解读CEF的cmake工程配置
    距离笔者的《使用CEF》系列的第一篇文章居然已经过去两年了,在这么长一段时间里,笔者也写了很多其它的文章,再回看《使用CEF(一)—起步》编写的内容,文笔稚嫩,内容单薄是显而易见的(主要是教大家按部就班的编译libcef_dll_wrapper库文件)。笔者一直以来的个性就是希望自己学习到的知识,研究......
  • Windows下Cmake编译Poco库
    C++Windows下使用Cmake编译Poco库1.编译前准备:先配置OpenSSL环境(opensslversion-a查看)如果openssl是1.0.*版本,Poco版本最高用1.9.4。如果1.1或者更高,用最新版本。2.编译命令(演示使用VS2022编译v140版本Win32的库):cd..mkdircmake_build_x86cdcmake......
  • Python信贷风控模型:梯度提升Adaboost,XGBoost,SGD, GBOOST, SVC,随机森林, KNN预测金
    原文链接:http://tecdat.cn/?p=26184 原文出处:拓端数据部落公众号最近我们被客户要求撰写关于信贷风控模型的研究报告,包括一些图形和统计输出。在此数据集中,我们必须预测信贷的违约支付,并找出哪些变量是违约支付的最强预测因子?以及不同人口统计学变量的类别,拖欠还款的概率如何......
  • linux跳过cmake,安装高版本的wgrib2
    一、安装依赖包yumgroupinstall'DevelopmentTools'yuminstallzlib-devel-yyuminstalllibpng-devel-yyuminstallopenssl-devel-yyum-yinstallgccgcc-c++opensslopenssl-develtar二、下载wgrib2编译包并且解压,修改makefiletarxvfwgrib2.tgz.v3.1.2......
  • XGBoost 2.0:对基于树的方法进行了重大更新
    XGBoost是处理不同类型表格数据的最著名的算法,LightGBM和Catboost也是为了修改他的缺陷而发布的。9月12日XGBoost发布了新的2.0版,本文除了介绍让XGBoost的完整历史以外,还将介绍新机制和更新。这是一篇很长的文章,因为我们首先从梯度增强决策树开始。基于树的方法,如决策树、随机......