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)不一致

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值