Boost安装配置错误整理,踩过的坑(vs2013+boost1.73.0)

这篇博客详细记录了在Windows环境下,使用VS2013和Boost1.73.0安装过程中遇到的错误及其解决方案,包括运行bootstrap.bat时的命令行错误、编译boost库缺少lib文件的问题以及VS2013内部编译错误。通过设置环境变量、正确配置b2.exe参数和更新VS2013到Update5,成功完成Boost的安装和配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Boost安装错误整理

最新的boost是Version 1.73.0,官网下载:https://www.boost.org/users/download/#history

一、运行bootstrap.bat批处理文件时报错

:Failed to build Boost.Build engine.:
cl’ 不是内部或外部命令,也不是可运行的程序 或批处理文件。
在这里插入图片描述

解决方案:

  1. 设置系统环境变量 Path = C:\Windows\System32,重启电脑生效!
  2. 在VS2013的工具集找到x86命令行工具(估计因为boost版本都是32位的),cd到boots的目录,再输入.\bootstrap.bat msvc ,编译运行OK。
    在这里插入图片描述

二、得到b2.exe程序和bjam.exe(我安装的最新boost_1_73_0编译后只有b2.exe,其实这两个exe一样的,问题不大)

<think>嗯,用户现在问的是关于使用MSVC编译Boost时,所有configure检查都是NO的情况。我需要先回想一下之前的历史对话。之前用户询问是否建议将Boost生成动态库,我详细介绍了动态库的优缺点、适用场景以及编译方法。现在用户遇到了具体的问题,可能是在实际编译过程中遇到了困难。 首先,我需要理解用户的问题。用户在使用MSVC编译Boost时,configure检查全部失败,返回NO。这种情况通常发生在配置阶段,Boost的构建系统b2在进行平台和编译器特性检测时失败,导致无法正确生成所需的库。 接下来,我需要分析可能的原因。常见的可能性包括:编译器路径未正确设置,MSVC版本不兼容,Windows SDK或平台工具集缺失,权限问题导致检测失败,或者是Boost版本与MSVC版本不匹配。此外,用户可能在运行b2时没有正确指定工具集,比如没有使用正确的vc版本参数,或者环境变量如INCLUDE、LIB未正确配置,导致编译器无法找到必要的头文件和库。 然后,我需要考虑用户可能的背景。用户可能是在Windows环境下使用Visual Studio的开发者,尝试编译Boost库以用于他们的项目。他们可能对Boost的构建过程不太熟悉,或者在配置过程中遇到了技术障碍,导致所有检查失败。用户可能需要具体的解决步骤,而不仅仅是原因分析。 接下来,我需要确保回答的结构清晰,分点列出可能的原因和解决方案。需要逐步引导用户检查环境变量、工具集配置、Visual Studio安装完整性、Boost版本兼容性等。此外,可能需要指导用户如何正确运行b2命令,指定正确的工具集,例如使用`vc142`对应VS2019,`vc143`对应VS2022,以及如何处理权限问题,例如以管理员身份运行命令提示符。 同时,需要提醒用户注意Boost版本和MSVC的兼容性,例如旧版Boost可能不支持最新的MSVC编译器,建议升级Boost或使用对应的版本。此外,检查Windows SDK和平台工具集的安装是否完整,特别是在Visual Studio安装时是否选择了C++相关组件。 可能还需要指导用户如何通过简单的测试,比如编译一个Hello World程序,来验证MSVC是否正确安装,从而排除编译器本身的问题。此外,用户可能需要检查构建日志,查看具体的错误信息,以便进一步诊断问题所在。 最后,总结解决步骤,强调逐步排查的重要性,从环境配置到命令参数,再到可能的权限和版本问题,确保用户能够系统性地解决问题。</think>当使用 MSVC(Microsoft Visual C++)编译 Boost 时,如果所有的 **`configure check`** 都显示为 **`NO`**,通常意味着 Boost 的构建系统(`b2` 或 `bootstrap.bat`)无法正确检测到你的编译器环境。以下是常见原因和解决方案: --- ### **1. 核心原因** Boost 在编译前会执行一系列 **`configure checks`**,检测编译器的功能(如 C++ 标准支持、多线程支持、异常处理等)。如果这些检查失败(全为 `NO`),通常是因为: - **MSVC 环境未正确配置**:编译器路径未添加到系统环境变量。 - **权限问题**:未以管理员权限运行命令提示符。 - **工具集不匹配**:未指定正确的 MSVC 工具集版本(如 `vc142`、`vc143`)。 - **依赖缺失**:Windows SDK 或平台工具集未安装。 - **Boost 版本与 MSVC 不兼容**:旧版 Boost 可能不支持新版本 MSVC。 --- ### **2. 解决方案** #### **步骤 1:确认 MSVC 环境配置** - **打开正确的命令提示符**: 使用 **`x64 Native Tools Command Prompt for VS 20XX`**(在 Visual Studio 的安装目录中),而非普通 CMD 或 PowerShell。 - 例如:`Visual Studio 2022` → `x64 Native Tools Command Prompt for VS 2022`。 - **验证编译器是否能运行**: 在命令行中运行 `cl`,检查是否能输出 MSVC 的版本信息。若提示找不到 `cl.exe`,说明环境变量未正确配置。 #### **步骤 2:指定正确的工具集** 在编译 Boost 时,需明确指定 MSVC 工具集版本(如 `vc143` 对应 VS2022,`vc142` 对应 VS2019)。 在命令行中执行以下操作: ```bash # 示例:指定工具集为 MSVC 2022 (vc143) bootstrap.bat .\b2 toolset=msvc-14.3 address-model=64 --build-type=complete ``` - 根据你的 Visual Studio 版本调整工具集名称: | Visual Studio 版本 | 工具集名称 | |--------------------|-------------| | VS 2019 | `msvc-14.2` | | VS 2022 | `msvc-14.3` | #### **步骤 3:检查 Windows SDK 和平台工具集** - 确保已安装 **Windows SDK** 和 **C++ 桌面开发组件**: 通过 Visual Studio Installer 添加以下组件: - `Windows 10/11 SDK` - `MSVC vXXX build tools` - `C++ CMake tools` #### **步骤 4:以管理员权限运行** - 右键点击命令提示符,选择 **“以管理员身份运行”**,避免因权限不足导致文件生成失败。 #### **步骤 5:修复环境变量** - 确保以下环境变量包含正确的路径: - `INCLUDE`:指向 MSVC 头文件目录(如 `VC\Tools\MSVC\14.3X.XXXXX\include`)。 - `LIB`:指向 MSVC 库文件目录(如 `VC\Tools\MSVC\14.3X.XXXXX\lib\x64`)。 - `PATH`:包含 `cl.exe` 所在目录(如 `VC\Tools\MSVC\14.3X.XXXXX\bin\Hostx64\x64`)。 #### **步骤 6:升级 Boost 版本** - 如果使用旧版 Boost(如 1.73 之前),可能不支持新版本 MSVC。建议升级到 **Boost 1.75+**。 --- ### **3. 完整编译示例(VS2022 + Boost 1.84)** ```bash # 1. 打开 x64 Native Tools Command Prompt for VS 2022 # 2. 进入 Boost 源码目录 cd D:\boost_1_84_0 # 3. 生成 b2 构建工具 bootstrap.bat # 4. 编译静态库和动态库(64位) .\b2 toolset=msvc-14.3 address-model=64 --build-type=complete ``` --- ### **4. 常见错误处理** - **错误:`performing configuration checks (32-bit) - no`** 指定 `address-model=64` 强制编译 64 位库: ```bash .\b2 toolset=msvc-14.3 address-model=64 ``` - **错误:`Failed to build Boost.Build engine`** 删除 `bootstrap.bat` 生成的临时文件(如 `bin.v2` 目录),重新运行 `bootstrap.bat`。 - **错误:`LINK : fatal error LNK1104: cannot open file 'kernel32.lib'`** 检查 Windows SDK 是否安装,并确保 `LIB` 环境变量包含 SDK 的库路径(如 `C:\Program Files (x86)\Windows Kits\10\Lib\10.0.XXXXX\um\x64`)。 --- ### **5. 验证编译结果** 编译完成后,检查以下目录是否生成 `.lib` 或 `.dll` 文件: - **静态库**:`boost_1_84_0\stage\lib\` - **动态库**:`boost_1_84_0\stage\lib\`(名称如 `boost_system-vc143-mt-x64-1_84.dll`) --- ### **总结** 如果所有 `configure check` 均为 `NO`,本质是 **MSVC 环境未正确关联到 Boost 构建系统**。需确保: 1. 使用正确的命令提示符(Native Tools)。 2. 指定工具集版本(`toolset=msvc-14.X`)。 3. 安装必要的 SDK 和构建工具。 4. 更新 Boost 到最新版本(如 1.84+)。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值