当前位置: 首页 > news >正文

Visual Studio 2022 配置 Boost 库

一、使用预编译版本

尽量不要使用预编译版本,因为可能构建的不完全,还得重新构建,不如一步到位

1. 下载预编译的 Boost 库

下载:Boost C++ Libraries - Browse /boost-binaries at SourceForge.net

2. 选择 msvc 版本,推荐选择最新的

3. 安装 Boost 库

4. 在 Visual Studio 中配置 Boost

1.)配置包含目录

  • 在 Visual Studio 中,右键点击你的项目,选择“属性”
  • 在“VC++ 目录”中找到“包含目录”,将解压后的 Boost 目录路径(例如 C:\Boost\boost_1_xx_x)添加进去

2.)配置库目录

  • 继续在“VC++ 目录”中,找到“库目录”,将 lib 目录路径添加进去(例如 C:\Boost\boost_1_xx_x\lib64-msvc-xx.x,根据解压后的实际目录可能有所不同)

3.)配置附加依赖项

  • 在项目属性页面,展开“链接器”,选择“输入”→“附加依赖项
  • 在此处添加你需要使用的 Boost 库的 .lib 文件,例如 libboost_filesystem-vc143-mt-x64-1_xx.lib
  • 库文件的名称可能不同,具体取决于 Boost 版本和编译器的版本

二、使用源码自行编译(推荐)

1. 准备工作

  • 下载 Boost 源代码: Boost Downloads

  • 确保安装了所需工具

    • Visual Studio 2022(或其他版本)和 C++ 开发工具
    • CMake(可选,Boost 支持 CMake,但通常使用 b2
  • 解压下载的源代码

2. 构建Boost

1.)打开vs命令行工具

2.)导航到 Boost 目录

使用 cd 命令切换到 Boost 源代码目录。例如:

cd C:\Boost\boost_1_xx_x

3.) 初始化 Boost.Build

在 Boost 目录中,运行以下命令来初始化 Boost.Build 系统:

bootstrap.bat

运行成功后,将生成一个名为 b2.exe 的文件

4.)编译 x86 和 x64 版本

命令行参数注释

  • toolset=msvc-14.3 表示使用 Visual Studio 2022
  • --build-type=complete 表示构建所有 Boost 组件
  • --with-filesystem --with-system 表示只构建 filesystem 和 system 库
  • architecture=x86 和 address-model=32 表示编译 32 位版本
  • architecture=x86 和 address-model=64 表示编译 64 位版本
  • link=static,shared 表示同时生成静态库和动态库
  • variant=debug,release 表示同时编译调试和发布版本
  • stage 表示将生成的库文件放到 stage 目录

运行以下命令来构建 x86 版本的 filesystem 和 system库:

b2 toolset=msvc-14.3 address-model=32 --with-filesystem --with-system stage

运行以下命令来构建 x64 版本的 filesystem 和 system库:

b2 toolset=msvc-14.3 address-model=64 --with-filesystem --with-system stage

运行以下命令来构建  x86 版本完整库:

b2 toolset=msvc-14.3 --build-type=complete architecture=x86 address-model=32 threading=multi link=static,shared variant=debug,release stage

运行以下命令来构建  x64 版本完整库:

b2 toolset=msvc-14.3 --build-type=complete architecture=x86 address-model=64 threading=multi link=static,shared variant=debug,release stage

5.)检查生成的库文件

生成的库文件将在 boost_1_xx_x\stage\lib 目录下。你应该可以找到以下文件:

  • libboost_filesystem-vc143-mt-x32-1_xx.lib(x86 版本)
  • libboost_system-vc143-mt-x32-1_xx.lib(x86 版本)
  • libboost_filesystem-vc143-mt-x64-1_xx.lib(x64 版本)
  • libboost_system-vc143-mt-x64-1_xx.lib(x64 版本)

6.)使用不同版本的 Visual Studio

Boost 支持多种版本的 Visual Studio。以下是一些常见的版本:

  • Visual Studio 2019(msvc-14.2)
  • Visual Studio 2017(msvc-14.1)
  • Visual Studio 2015(msvc-14.0)

在 VS 中查看编译器版本

b2 命令中更改 toolset 参数以指定不同的编译器版本。例如,Visual Studio 2015 编译:

b2 toolset=msvc-14.0 address-model=32 --with-filesystem --with-system stage

三、使用 NuGet 安装 Boost

如果不想手动下载和编译 Boost,可以使用 Visual Studio 的 NuGet 包管理器安装 Boost:

1. 打开 NuGet 包管理器控制台

在 Visual Studio 的顶部菜单栏中,点击“工具” → “NuGet 包管理器” → “包管理器控制台

2. 在控制台中安装 Boost

打开包管理器控制台后,在控制台中输入以下命令来安装 Boost:

Install-Package boost

如果需要特定版本的 Boost,可以通过指定版本来安装,例如:

Install-Package boost -Version 1.76.0

3. NuGet 会自动处理依赖项

NuGet 包管理器会自动将 Boost 的引用添加到项目中,并配置好包含路径和库路径

补充:

1. 测试 Boost

#include <boost/filesystem.hpp>
#include <iostream>int main() {boost::filesystem::path p("C:\\example");std::cout << "Path is: " << p << std::endl;return 0;
}

2. 如果没有默认的 NuGet 源怎么办?

如果在控制台中找不到 Boost 包,可能是你的 NuGet 源配置有问题。你可以通过以下命令检查当前的包源:

Get-PackageSource

如果没有看到 nuget.org,可以通过以下命令添加:

Register-PackageSource -Name nuget.org -Location https://api.nuget.org/v3/index.json -ProviderName NuGet

3. 出现 LNK1104 错误,提示找不到 .lib

出现 LNK1104 错误,提示找不到 xxx.lib,通常是由于以下几个原因:

库文件没有生成:安装 Boost 时,特定版本、特定配置(例如 32 位、64 位、多线程、静态库或动态库)下的库文件可能没有生成

自动链接功能错误:Boost 使用 auto_link 特性自动选择库文件,但你当前的编译器、平台或配置和库文件不匹配

编译时配置不匹配:你使用的 Boost 版本、编译器版本和架构(x86 或 x64)不一致

相关文章:

Visual Studio 2022 配置 Boost 库

一、使用预编译版本 尽量不要使用预编译版本&#xff0c;因为可能构建的不完全&#xff0c;还得重新构建&#xff0c;不如一步到位 1. 下载预编译的 Boost 库 下载&#xff1a;Boost C Libraries - Browse /boost-binaries at SourceForge.net 2. 选择 msvc 版本&#xff0…...

逻辑回归(下): Sigmoid 函数的发展历史

背景 闲来无事翻了一下之前买的一个机器学习课程及之前记录的网络笔记&#xff0c;发现遇到公式都是截图&#xff0c;甚至是在纸上用笔推导的。重新整理一遍之前逻辑回归函数的学习笔记&#xff0c;主要是为了玩一下 LaTex 语法&#xff0c;写公式挺有意思的。 整理之前三篇笔…...

快速理解mQ(三)——RabbitMQ 各种交换机的区别与应用

RabbitMQ是一个开源的消息代理软件&#xff0c;它实现了高级消息队列协议&#xff08;AMQP&#xff09;&#xff0c;允许应用程序或系统以异步的方式交换数据。RabbitMQ中的交换机&#xff08;Exchange&#xff09;是消息的分发中心&#xff0c;它接收来自生产者的消息&#xf…...

【五分钟学会】YOLO11 自定义数据集从训练到部署

数据集地址 数据集包含 360 张红血细胞图像及其注释文件&#xff0c;分为训练集与验证集。训练文件夹包含 300 张带有注释的图像。测试和验证文件夹都包含 60 张带有注释的图像。我们对原始数据集进行了一些修改以准备此 CBC 数据集&#xff0c;并将数据集分成三部分。在360张…...

Redis学习(十二)连接数不足报错及分析修复:ERR max number of clients reached.

目录 一、问题介绍二、问题分析2.1 redis-cli 登录2.2 info clients 查看连接数情况2.3 client list 查看具体连接情况2.4 分析连接空闲时长2.5 client list 根据客户端IP统计连接数 三、问题结论和解决3.1 问题结论&#xff1a;3.2 解决方案①&#xff1a;优化程序3.3 解决方案…...

八股文面试题总结(包含主流的面试经典题)

Java基础 1、JDK和JRE的区别是什么** JDK是Java开发工具包&#xff0c;JRE是Java运行时环境&#xff0c;二者的区别在于 JRE是Java程序运行所必须的&#xff0c;它包含jvm和一些Java的基础类库 JDK是Java程序开发所必须的&#xff0c;它包含JRE和一些开发工具 总结一下就是…...

一分钟掌握 Java22 新特性

1. 增强的模式匹配&#xff08;Pattern Matching for Switch&#xff09; Java 22 扩展了模式匹配的功能&#xff0c;允许在 switch 语句中使用模式匹配&#xff0c;从而使代码更加简洁和易读。 示例代码&#xff1a; public class PatternMatchingSwitchDemo {public stati…...

西安凭借入驻企业展示科技“硬”实力的数字媒体产业园

在古城西安的怀抱中&#xff0c;一座以科技“硬”实力为核心竞争力的数字媒体产业园——西安国际数字影像产业园&#xff0c;正以其独特的魅力和无限的潜力&#xff0c;吸引着全球的目光。这里&#xff0c;不仅是数字创意的孵化场&#xff0c;更是科技创新的策源地。 西安国际数…...

【网络安全】利用XSS、OAuth配置错误实现token窃取及账户接管 (ATO)

未经许可,不得转载。 文章目录 正文正文 目标:target.com 在子域sub1.target.com上,我发现了一个XSS漏洞。由于针对该子域的漏洞悬赏较低,我希望通过此漏洞将攻击升级至app.target.com,因为该子域的悬赏更高。 分析认证机制后,我发现: sub1.target.com:使用基于Cook…...

浙江所有省级医院体检报告查询上线浙里办!

在医院完成体检后不知道什么时候出报告 体检报告出来后又要跑一次医院去拿报告 历年体检报告没保管好 往年体检报告找不到了 ………… ​编辑 为解决这些问题&#xff0c;浙江省卫生健康委结合“两卡融合、一网通办”工作的推进&#xff0c;不断丰富电子健康医保卡的功能&#…...

支付宝支付Java+uniapp支付宝小程序

JS&#xff1a; request.post(/vip/pay, {//这是自己写的java支付接口id: this.vipInfo.id,payWay: alipay-mini}).then((res) > {let success (res2) > {//前端的支付成功回调函数this.$refs.popup.close();// 支付成功刷新当前页面setTimeout(() > {this.doGetVipI…...

Linux-磁盘优化的几个思路

优化前先看看性能指标 I/O 基准测试 fio&#xff08;Flexible I/O Tester&#xff09;正是最常用的文件系统和磁盘 I/O 性能基准测试工具。这类工具非常用&#xff0c;了解即可 应用程序优化 应用程序处于整个 I/O 栈的最上端&#xff0c;它可以通过系统调用&#xff0c;来调…...

【第三版 系统集成项目管理工程师】第15章 组织保障

持续更新。。。。。。。。。。。。。。。 【第三版】第十五章 组织保障 15.1信息和文档管理15.1.1 信息和文档1.信息系统信息-P5462.信息系统文档-P546 15.1.2 信息(文档)管理规则和方法1.信息(文档)编制规范-P5472.信息(文档)定级保护-P5483.信息(文档)配置管理-P549练习 15.…...

从编程视角看生命、爱、自由、生活的排列顺序

从编程视角看生命、爱、自由、生活的排列顺序 离开大学校园&#xff0c;踏入大厂成为一名算法工程师后&#xff0c;我常以编程思维看待生活中的事物。在思考生命、爱、自由和生活的排列顺序时&#xff0c;发现从编程角度分析这些概念会有独特见解。 一、生命——程序的核心代…...

Lumerical——属性编辑窗口的详解

一、几何选项卡(Geometry tab) 通过几何选项卡中的选项可以设定物件的位置和大小。 二、材料选项卡(Material tab) ① 材料(MATERIAL): 在该字段可以设置成材料数据库中包含的任何材料。数据库也有可能包含一些新材料,也可以对已经包含的材料进行编辑。如果选…...

08实战篇:972应用题(2024)思路解析

在本节中,你将学习到: 2024年972应用题的基本解题思路如何应对陌生的社会/学术热点问题,避免初见杀题目一:阐述搜索引擎的工作基本原理 关键词:搜索引擎、基本原理题型:基础概念题这是一道混在应用题中的简答题。根据《信息检索》一书中的P37内容回答即可(同时对应P45—…...

解决应用程序启动失败问题:由于找不到d3dx9_43.dll文件,如何快速有效地恢复和修复缺失的DLL组件

由于找不到d3dx9_43.dll&#xff0c;许多用户在启动某些游戏或者图形相关软件时遇到了棘手的问题。这个小小的DLL文件&#xff0c;虽然看似不起眼&#xff0c;却在众多基于DirectX 9技术构建的应用程序中扮演着至关重要的角色。对于游戏爱好者来说&#xff0c;当满心欢喜地准备…...

Ubuntu——双系统Ubuntu22.04系统安装和基础配置

文章目录 一、Ubuntu22.04双系统安装双系统安装和卸载 二、基础配置更新软件源搜狗输入法TimeShift上网 三、AI配置CondaCUDA12.6Pytorch2.3.0-cu121 四、额外配置Samba局域网文件共享系统 一、Ubuntu22.04双系统安装 双系统安装和卸载 双系统卸载安装Ubuntu双系统windows系统…...

stm32定时器中断和外部中断

一&#xff0c;中断系统的介绍 中断&#xff1a;在主程序运行过程中&#xff0c;出现了特定的中断触发条件&#xff08;中断源&#xff09;&#xff0c;使得CPU暂停当前正在运行的程序&#xff0c;转而去处理中断程序&#xff0c;处理完成后又返回原来被暂停的位置继续运行 中…...

LeetCode 每日一题 2024/9/30-2024/10/6

记录了初步解题思路 以及本地实现代码&#xff1b;并不一定为最优 也希望大家能一起探讨 一起进步 目录 9/30 1845. 座位预约管理系统10/1 983. 最低票价10/2 1870. 准时到达的列车最小时速10/3 1928. 规定时间内到达终点的最小花费10/4 1227. 飞机座位分配概率10/5 2187. 完成…...

2025盘古石杯决赛【手机取证】

前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来&#xff0c;实在找不到&#xff0c;希望有大佬教一下我。 还有就会议时间&#xff0c;我感觉不是图片时间&#xff0c;因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...

Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!

一、引言 在数据驱动的背景下&#xff0c;知识图谱凭借其高效的信息组织能力&#xff0c;正逐步成为各行业应用的关键技术。本文聚焦 Spring Boot与Neo4j图数据库的技术结合&#xff0c;探讨知识图谱开发的实现细节&#xff0c;帮助读者掌握该技术栈在实际项目中的落地方法。 …...

【C++从零实现Json-Rpc框架】第六弹 —— 服务端模块划分

一、项目背景回顾 前五弹完成了Json-Rpc协议解析、请求处理、客户端调用等基础模块搭建。 本弹重点聚焦于服务端的模块划分与架构设计&#xff0c;提升代码结构的可维护性与扩展性。 二、服务端模块设计目标 高内聚低耦合&#xff1a;各模块职责清晰&#xff0c;便于独立开发…...

Springboot社区养老保险系统小程序

一、前言 随着我国经济迅速发展&#xff0c;人们对手机的需求越来越大&#xff0c;各种手机软件也都在被广泛应用&#xff0c;但是对于手机进行数据信息管理&#xff0c;对于手机的各种软件也是备受用户的喜爱&#xff0c;社区养老保险系统小程序被用户普遍使用&#xff0c;为方…...

重启Eureka集群中的节点,对已经注册的服务有什么影响

先看答案&#xff0c;如果正确地操作&#xff0c;重启Eureka集群中的节点&#xff0c;对已经注册的服务影响非常小&#xff0c;甚至可以做到无感知。 但如果操作不当&#xff0c;可能会引发短暂的服务发现问题。 下面我们从Eureka的核心工作原理来详细分析这个问题。 Eureka的…...

Fabric V2.5 通用溯源系统——增加图片上传与下载功能

fabric-trace项目在发布一年后,部署量已突破1000次,为支持更多场景,现新增支持图片信息上链,本文对图片上传、下载功能代码进行梳理,包含智能合约、后端、前端部分。 一、智能合约修改 为了增加图片信息上链溯源,需要对底层数据结构进行修改,在此对智能合约中的农产品数…...

【JVM面试篇】高频八股汇总——类加载和类加载器

目录 1. 讲一下类加载过程&#xff1f; 2. Java创建对象的过程&#xff1f; 3. 对象的生命周期&#xff1f; 4. 类加载器有哪些&#xff1f; 5. 双亲委派模型的作用&#xff08;好处&#xff09;&#xff1f; 6. 讲一下类的加载和双亲委派原则&#xff1f; 7. 双亲委派模…...

MacOS下Homebrew国内镜像加速指南(2025最新国内镜像加速)

macos brew国内镜像加速方法 brew install 加速formula.jws.json下载慢加速 &#x1f37a; 最新版brew安装慢到怀疑人生&#xff1f;别怕&#xff0c;教你轻松起飞&#xff01; 最近Homebrew更新至最新版&#xff0c;每次执行 brew 命令时都会自动从官方地址 https://formulae.…...

Qemu arm操作系统开发环境

使用qemu虚拟arm硬件比较合适。 步骤如下&#xff1a; 安装qemu apt install qemu-system安装aarch64-none-elf-gcc 需要手动下载&#xff0c;下载地址&#xff1a;https://developer.arm.com/-/media/Files/downloads/gnu/13.2.rel1/binrel/arm-gnu-toolchain-13.2.rel1-x…...

HubSpot推出与ChatGPT的深度集成引发兴奋与担忧

上周三&#xff0c;HubSpot宣布已构建与ChatGPT的深度集成&#xff0c;这一消息在HubSpot用户和营销技术观察者中引发了极大的兴奋&#xff0c;但同时也存在一些关于数据安全的担忧。 许多网络声音声称&#xff0c;这对SaaS应用程序和人工智能而言是一场范式转变。 但向任何技…...