VS2022下C++ Boost库安装与使用使用

article/2025/6/6 2:50:38

一.Boost概述

1.简介

Boost 是一个广泛使用的 C++ 库集合,提供了许多高质量、可移植、高效的工具和组件,被视为 C++ 标准库的延伸。自 1998 年成立以来,Boost 已成为 C++ 社区的核心资源,许多 Boost 库通过实践验证后被纳入 C++ 标准(如智能指针、正则表达式、多线程),因此被称为 “C++ 的未来实验室”。

2.跨平台兼容:支持 Windows、Linux、macOS 等主流操作系统,以及 GCC、Clang、MSVC 等编译器。

3.官网:https://www.boost.org/

官方文档:https://www.boost.org/doc/

GitHub 仓库:https://github.com/boostorg/boost

二.win10下Boost安装

方法一:下载源码编译使用

1.下载Boost库

官网下载:访问 Boost官网 下载最新版本(如 boost_1_84_0.tar.gz 或 .zip)。

官网:https://www.boost.org/releases/latest/

2.解压文件

使用工具(如7-Zip)解压到目标目录。

3.生成构建工具

Windows(在解压目录打开命令提示符):

bootstrap.bat

4. 编译Boost库

Windows(VS2022编译64位):

执行b2.exe

5.验证安装

创建测试程序 test_boost.cpp:

#include <boost/filesystem.hpp>

#include <iostream>

int main() {

    std::cout << "Boost version: "

              << BOOST_VERSION / 100000 << "."

              << BOOST_VERSION / 100 % 1000 << "."

              << BOOST_VERSION % 100

              << std::endl;

    return 0;

}

方法二:直接下载二进制版本使用

1.也可以直接下载release版本,直接运行exe文件安装编译好的lib库到指定目录,无需上述编译过程。

Vs2022匹配版本:boost_1_88_0-msvc-14.3-64.exe

.VS2022环境配置

1.步骤 1:项目编译配置

确保编译时选择的 Boost 库版本(32/64位、Debug/Release)与 VS 项目配置一致,如下图:

注意:

如果配置不一致,可能会导致头文件找不到的情况。

2.步骤 2:配置 VS2022 项目

包含头文件目录:

右键项目 → 属性 → VC++ 目录 → 包含目录 → 添加:E:\boost_1_88_0

或者

右键项目---属性---配置属性---c/c++---常规---附加包含目录,添加:E:\boost_1_88_0

Lib库链接:

通用属性->链接器->常规:"附加库目录":同上面的"库目录",添加:

E:\boost_1_88_0\stage\lib

.高级配置(CMake 集成)

若项目使用 CMake,可在 CMakeLists.txt 中添加:

set(BOOST_ROOT "C:/Boost")  # 指定 Boost 根目录

find_package(Boost 1.84.0 REQUIRED COMPONENTS filesystem system regex)

add_executable(MyProject main.cpp)

target_link_libraries(MyProject PRIVATE

    Boost::filesystem

    Boost::system

    Boost::regex

)

.代码示例

1.输出 Boost 版本(验证安装)

#include <iostream>

#include <boost/version.hpp>

int main() {

    std::cout << "Boost 版本: "

              << BOOST_VERSION / 100000 << "."   // 主版本

              << BOOST_VERSION / 100 % 1000 << "."  // 次版本

              << BOOST_VERSION % 100             // 修订号

              << std::endl;

    return 0;

}

编译选项:

确保项目配置(Debug/Release、x64/x86)与 Boost 库的编译参数一致。

若使用动态库(DLL),需将 boost_*.dll 文件复制到项目输出目录(如 Debug/)。

2.文件系统操作(boost::filesystem)

#include <iostream>

#include <boost/filesystem.hpp>

namespace fs = boost::filesystem;

int main() {

    // 检查文件是否存在

    fs::path file_path = "C:\\Windows\\System32\\drivers\\etc\\hosts";

    if (fs::exists(file_path)) {

        std::cout << "文件大小: " << fs::file_size(file_path) << " 字节" << std::endl;

    } else {

        std::cout << "文件不存在!" << std::endl;

    }

    // 遍历当前目录

    std::cout << "\n当前目录内容:" << std::endl;

    for (const auto& entry : fs::directory_iterator(fs::current_path())) {

        std::cout << entry.path().filename() << std::endl;

    }

    return 0;

}

附加依赖项:

libboost_filesystem-vc143-mt-x64-1_84.lib

libboost_system-vc143-mt-x64-1_84.lib

3.正则表达式(boost::regex)

#include <iostream>

#include <boost/regex.hpp>

int main() {

    std::string text = "我的电话号码是 138-1234-5678";

    boost::regex pattern(R"((\d{3})-(\d{4})-(\d{4}))"); // 匹配电话号码

    boost::smatch matches;

    if (boost::regex_search(text, matches, pattern)) {

        std::cout << "完整匹配: " << matches[0] << std::endl;

        std::cout << "区号: " << matches[1] << std::endl;

    } else {

        std::cout << "未找到电话号码!" << std::endl;

    }

    return 0;

}

附加依赖项:

libboost_regex-vc143-mt-x64-1_84.lib

4.日期时间(boost::posix_time)

#include <iostream>

#include <boost/date_time/posix_time/posix_time.hpp>

int main() {

    // 获取当前时间

    boost::posix_time::ptime now = boost::posix_time::second_clock::local_time();

    std::cout << "当前时间: " << now << std::endl;

    // 计算时间差

    boost::posix_time::ptime start = boost::posix_time::microsec_clock::local_time();

    // ...(执行某些操作)

    boost::posix_time::ptime end = boost::posix_time::microsec_clock::local_time();

    boost::posix_time::time_duration duration = end - start;

    std::cout << "耗时: " << duration.total_milliseconds() << " 毫秒" << std::endl;

    return 0;

}

附加依赖项:

libboost_date_time-vc143-mt-x64-1_84.lib


http://www.hkcw.cn/article/oeOHZEqHUB.shtml

相关文章

Unity-UI组件详解

今天我们来学习Unity的UI的详解&#xff0c;这部分的内容相对较少&#xff0c;对于程序员来说主要的工作是负责将各种格式的图片呈现在显示器上并允许操作这些图片。 本篇帖子的理论依据依然是官方开源的UGUI代码&#xff0c;网址为&#xff1a;GitHub - Unity-Technologies/u…

化工厂爆炸事件看制造业AI转型

一、事件警示&#xff1a;化工制造安全风险不容忽视 近日&#xff0c;某化学有限公司发生事故。涉事工厂主体工程建设有2座硝化装置区&#xff0c;1座加氢装置区&#xff0c;均属于危险工艺生产装置。硝化反应通常属于强放热反应&#xff0c;原料及产物具有爆炸危险性&#xf…

Ubuntu系统安装与配置NTP时间同步服务

Ubuntu系统安装与配置NTP时间同步服务 一、NTP服务介绍NTP服务简介工作原理系统环境准备检查当前时间状态二、方案选择:systemd-timesyncd vs ntpd三、使用systemd-timesyncd时间同步1. 方案介绍2. 配置优化3. 应用配置4. 验证状态5. 检查当前时间状态6. 查看当前实践四、使用…

【小红书】API接口,获取笔记核心数据

小红书笔记核心数据API接口详解 - 深圳小于科技提供专业数据服务 深圳小于科技&#xff08;官网&#xff1a;https://www.szlessthan.com&#xff09;推出的小红书笔记核心数据API接口&#xff0c;为开发者提供精准的笔记互动数据分析能力&#xff0c;助力内容运营与商业决策。…

ElasticStack技术之logstash介绍

一、什么是Logstash Logstash 是 Elastic Stack&#xff08;ELK Stack&#xff09;中的一个开源数据处理管道工具&#xff0c;主要用于收集、解析、过滤和传输数据。它支持多种输入源&#xff0c;如文件、网络、数据库等&#xff0c;能够灵活地对数据进行处理&#xff0c;比如…

InternLM2/LM2.5/ViT/VL1.5/VL2.0笔记: 核心点解析

00 前言 本文主要是记录一下关于多模态大模型InternLM/InternVL系列的一些要点的理解。还是那句话&#xff0c;好记性&#xff0c;不如烂笔头。本文当成个人笔记用&#xff0c;行文风格和先前写的LLaVA系列一致。本文的重点是讲解多模态模型InternVL 1.5&#xff0c;但是Intern…

帝可得 - 设备管理

一. 需求说明 设备管理主要涉及到三个功能模块&#xff0c;业务流程如下&#xff1a; 新增设备类型: 允许管理员定义新的售货机型号&#xff0c;包括其规格和容量。 新增设备: 在新的设备类型定义后&#xff0c;系统应允许添加新的售货机实例&#xff0c;并将它们分配到特定的…

建设指南 | Cloud Apps + AI Apps端到端智能应用开发平台

在“云AI”作为基础设施的时代&#xff0c;研发、运维、信息化等部门&#xff0c;通常会面临的棘手问题都有哪些&#xff1a; 算力资源难以统一调度和管理&#xff1b;AI算法研发环境搭建复杂&#xff1b;不同模型部署方式繁杂&#xff0c;统一监控难&#xff1b;AI应用开发效…

【灵动Mini-F5265-OB】vscode+gcc工程创建、下载、调试

【前言】 【灵动Mini-F5265-OB】在官方的例程中提供了mdk、IAR的开发环境&#xff0c;使用起来非常方便。有位大佬也提供了一个gcc的示例&#xff0c;但是我使用vscode的keil插件进行工程创建&#xff0c;但是提示pack是对不上的。所以我决定重新创建我的vscode来创建开发环境。…

【AI论文】VF-Eval:评估多模态大型语言模型(MLLM)在生成人工智能生成内容(AIGC)视频反馈方面的能力

摘要&#xff1a;多模态大型语言模型&#xff08;MLLMs&#xff09;最近在视频问答领域得到了广泛研究。然而&#xff0c;现有的大多数评估都侧重于自然视频&#xff0c;而忽视了合成视频&#xff0c;例如人工智能生成的内容&#xff08;AIGC&#xff09;。与此同时&#xff0c…

Docker 镜像(或 Docker 容器)中查找文件命令

在 Docker 镜像&#xff08;或 Docker 容器&#xff09;中运行如下两个命令时&#xff1a; cd / find . -name generate.py它们的含义如下&#xff0c;我们来一行一行详细拆解&#xff0c;并结合例子讲解&#xff1a; ✅ 第一行&#xff1a;cd / ✅ 含义 cd 是“change dire…

DiskGenius专业版v6.0.1.1645:分区管理、数据恢复、备份还原,一应俱全!

各位小伙伴&#xff0c;大家好&#xff01;今天阿灿给大家带来一款超好用的分区工具&#xff0c;DiskGenius专业版。这款工具堪称电脑管理界的“瑞士军刀”&#xff0c;功能强大&#xff0c;现在出了新版本v6.0.1.1645&#xff0c;简繁中文单文件便携版&#xff0c;使用超方便。…

‌CDGP|数据治理的低效性:企业AI落地的另一大挑战

在数字化转型的浪潮中&#xff0c;人工智能&#xff08;AI&#xff09;已成为推动企业创新发展的重要力量。然而&#xff0c;尽管AI技术具有巨大的潜力和优势&#xff0c;但许多企业在尝试落地AI项目时却面临着重重挑战。其中&#xff0c;数据治理的低效性尤为突出&#xff0c;…

linux学习第19、20天(父子进程)

ps ajx -->查看pid&#xff0c;ppid&#xff0c;gid&#xff0c;sid 父子进程 父子进程相同&#xff1a; 刚fork后&#xff0c;data段、text段、堆&#xff0c;栈、环境变量、全局变量、进程工作目录位置、信号处理方式 父子进程不同&#xff1a; 进程id、返回值、各自的…

AI写作革命:重塑创作未来

人工智能写作技术&#xff1a;革新创作方式的智能利器 人工智能写作技术&#xff08;AI写作技术&#xff09;是指利用自然语言处理&#xff08;NLP&#xff09;、机器学习&#xff08;ML&#xff09;等人工智能技术&#xff0c;辅助或自动化完成文本的创作、编辑与优化。这一技…

法律大语言模型(Legal LLM)技术架构

目录 摘要 1 法律AI大模型技术架构 1.1 核心架构分层 1.2 法律知识增强机制 2 关键技术突破与对比 2.1 法律专用组件创新 2.2 性能对比(合同审查场景) 3 开发部署实战指南 3.1 环境搭建流程 3.2 合同审查代码示例 4 行业应用与挑战 4.1 典型场景效能提升 4.2 关…

深入理解 C# Razor Pages:构建现代 Web 应用的利器

在现代 Web 开发中&#xff0c;选择合适的框架至关重要。ASP.NET Core 提供了多种开发模式&#xff0c;其中 Razor Pages 因其简单性、高效性和易用性&#xff0c;成为构建页面导向 Web 应用的首选方案。相比于传统的 MVC&#xff08;Model-View-Controller&#xff09;模式&am…

AgenticSeek 本地部署教程(Windows 系统)

#工作记录 Fosowl/agenticSeek&#xff1a;完全本地的 Manus AI。 部署排错参考资料在文末 或查找往期笔记。 AgenticSeek 本地部署教程&#xff08;Windows 系统&#xff09; 一、环境准备 1. 安装必备工具 Docker Desktop 下载地址&#xff1a;Docker Desktop 官网 安装后启…

后台管理系统八股

项⽬地址&#xff1a;https://github.com/Xiaodie-888/Frontend.git 前端 https://github.com/Xiaodie-888/backend.git 后端 技术栈&#xff1a;Vue3ViteTyprscriptPiniaElement-plusVue-RouterExpress.jsMySQL 核⼼⼯作与技术&#xff1a; 基础组件封装&#xff1a;基于 Ele…

014校园管理系统技术解析:构建智慧校园管理平台

校园管理系统技术解析&#xff1a;构建智慧校园管理平台 在教育信息化快速发展的当下&#xff0c;校园管理系统成为提升学校管理效率、优化校园服务的重要工具。该系统集成院校管理、投票管理等多个核心模块&#xff0c;面向管理员、用户和院内管理员三种角色&#xff0c;通过…