当前位置: 首页 > 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)不一致

http://www.lryc.cn/news/456319.html

相关文章:

  • 逻辑回归(下): Sigmoid 函数的发展历史
  • 快速理解mQ(三)——RabbitMQ 各种交换机的区别与应用
  • 【五分钟学会】YOLO11 自定义数据集从训练到部署
  • Redis学习(十二)连接数不足报错及分析修复:ERR max number of clients reached.
  • 八股文面试题总结(包含主流的面试经典题)
  • 一分钟掌握 Java22 新特性
  • 西安凭借入驻企业展示科技“硬”实力的数字媒体产业园
  • 【网络安全】利用XSS、OAuth配置错误实现token窃取及账户接管 (ATO)
  • 浙江所有省级医院体检报告查询上线浙里办!
  • 支付宝支付Java+uniapp支付宝小程序
  • Linux-磁盘优化的几个思路
  • 【第三版 系统集成项目管理工程师】第15章 组织保障
  • 从编程视角看生命、爱、自由、生活的排列顺序
  • Lumerical——属性编辑窗口的详解
  • 08实战篇:972应用题(2024)思路解析
  • 解决应用程序启动失败问题:由于找不到d3dx9_43.dll文件,如何快速有效地恢复和修复缺失的DLL组件
  • Ubuntu——双系统Ubuntu22.04系统安装和基础配置
  • stm32定时器中断和外部中断
  • LeetCode 每日一题 2024/9/30-2024/10/6
  • Redis篇(最佳实践)(持续更新迭代)
  • 详细介绍pandas 在python中的用法
  • 八字命理测算系统开发-源码搭建
  • Python批量读取mat文件
  • UE4 材质学习笔记05(凹凸偏移和视差映射/纹理压缩设置)
  • 基于贝叶斯决策的 CAD 程序设计方案
  • 算法: 二分查找题目练习
  • Qt开发技巧(十三)QList插入操作,扩展类型的使用,关于QSS的坑,Qt的延时方法,Qt编译的三种版本,环境搭建多练练,指向Qt源码的报错
  • docker快速上手
  • JAVA学习-练习试用Java实现“反转链表 II”
  • 15分钟学 Python 第35天 :Python 爬虫入门(一)