一、使用预编译版本
尽量不要使用预编译版本,因为可能构建的不完全,还得重新构建,不如一步到位
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)不一致