BOOST库配置到VS2022详细操作步骤和可能出现的错误解决方法

BOOST库配置

配置过程见BOOST库配置到VS2022(保姆级教程)主要借鉴
C/C++ Windows环境下 boost 安装使用教程【学习笔记】
Boost库各个版本下载地址
在这里插入图片描述

上述的细节操作

  • 第一点
    在这里插入图片描述
    我的操作步骤是
    在这里插入图片描述

  • 第二点
    在这里插入图片描述
    我自己的操作是

在这里插入图片描述在这里插入图片描述

我的MSVC版本号:D:\download software\visual studio2022\VS\VC\Tools\MSVC\14.41.34120

所以我的MSVC版本是14.4

  • 第三点

在这里插入图片描述

1、打开vs命令行窗口:搜索栏输入Developer Command Prompt

在这里插入图片描述

2、进入b2.exe文件夹,我的是D:\download software\boost_1_81_0\boost_1_81_0

在这里插入图片描述

在vs命令行窗口输入

  cd D:\download software\boost_1_81_0\boost_1_81_0

在这里插入图片描述

创建一个存储include和lib空文件夹,我的文件夹位置是D:\download software\boost_MSVC,名称是boost_MSVC,根据自己的版本进行修改 ,我的msvc版本是14.4根据自己的版本进行修改

在这里插入图片描述

在vs命令行输入

b2 install --toolset=msvc-14.4 --build-type=complete --prefix="D:\download software\boost_MSVC" link=shared runtime-link=static threading=multi debug release --allow-shared-static address-model=64  architecture=x86

在这里插入图片描述

安装成功后显示:
在这里插入图片描述
boost_MSVC中出现include和lib文件
在这里插入图片描述

  • 第三点

VC++目录下的包含目录
D:\download software\boost_MSVC\include\boost-1_81

VC++目录下的库目录
D:\download software\boost_MSVC\lib
在这里插入图片描述

在这里插入图片描述

出现的错误

错误1

使用b2.exe install --toolset=msvc-14.4 --build-type=complete --prefix=“D:\download software\boost_MSVC” link=shared runtime-link=static threading=multi debug release --allow-shared-static出现下面的错误

error: Name clash for '<pD:\download software\boost_MSVC\lib>boost_container-vc144-mt-gd-1_81.lib'
error:
error: Tried to build the target twice, with property sets having
error: these incompatible properties:
error:
error:     -  <address-model>32
error:     -  <address-model>64
error:
error: Please make sure to have consistent requirements for these
error: properties everywhere in your project, especially for install
error: targets.

您遇到的错误和警告主要有两个方面:配置不一致和库名称冲突。让我们逐一分析并提供解决方法。

  • 警告分析
  1. link=shared, runtime-link=static is disabled
    • 这个警告表明您指定的 link=sharedruntime-link=static 的配置在默认情况下被禁用了,因为这可能导致不安全的使用。要启用它,您需要在命令中添加 --allow-shared-static 参数。
  • 错误分析
  1. Name clash for '<pD:\download software\boost_MSVC\lib>boost_container-vc144-mt-gd-1_81.lib'

    • 这个错误表明您尝试构建目标两次,并且这些目标的属性不一致。可能是在不同的构建过程中尝试生成相同名称的库文件(例如,一个为 32 位,另一个为 64 位)。
  2. <address-model>32<address-model>64

    • 这个错误表示在构建中有两种不同的地址模型(32 位和 64 位),这导致了名称冲突。您需要确保所有的构建配置(例如,调试和发布)使用相同的地址模型。
  • 解决方法
  1. 启用共享和静态链接
    b2 命令中添加 --allow-shared-static 参数:

    D:\download software\boost_1_81_0\boost_1_81_0\b2.exe install --toolset=msvc-14.3 --build-type=complete --prefix="D:\download software\boost_MSVC" link=shared runtime-link=static threading=multi debug release --allow-shared-static
    
  2. 清理之前的构建
    在执行新的构建之前,确保清理之前的构建文件,以避免名称冲突。可以使用以下命令清理:

    D:\download software\boost_1_81_0\boost_1_81_0\b2.exe clean
    
  3. 确保一致的地址模型
    确保您在同一命令中只使用一个地址模型。例如,如果您希望构建 64 位版本,请确保没有其他构建尝试使用 32 位:

    • 如果需要构建 64 位版本,请确保 Visual Studio 的项目配置为 64 位,并且命令中不涉及 32 位库。
  4. 检查安装目录
    确保 D:\download software\boost_MSVC 目录是干净的,避免之前的构建遗留文件导致冲突。

  5. 总结
    通过启用 --allow-shared-static,清理之前的构建并确保一致的地址模型,您应该能够解决这些问题并成功构建 Boost 库。如果问题仍然存在,请仔细检查构建命令和相关配置。

错误2

使用b2.exe install --toolset=msvc-14.4 --build-type=complete --prefix=“D:\download software\boost_MSVC” link=shared runtime-link=static threading=multi debug release --allow-shared-static出现下面的错误

error:
error: Tried to build the target twice, with property sets having
error: these incompatible properties:
error:
error:     -  <address-model>32
error:     -  <address-model>64
error:
error: Please make sure to have consistent requirements for these
error: properties everywhere in your project, especially for install
error: targets.

您遇到的错误是由于在构建 Boost 库时同时尝试生成相同名称的库文件(boost_container-vc144-mt-sgd-1_81.lib),但使用了不同的地址模型(32 位和 64 位)。这会导致名称冲突,因为同一目录中无法同时存在同名的库文件。

  • 错误分析
  1. 名称冲突

    • 错误信息指示在构建过程中有两个不同的构建尝试生成相同名称的库文件,并且它们的地址模型不同(32 位和 64 位)。
  2. 不一致的构建配置

    • 可能是在不同的构建过程中,您使用了不同的配置(例如,有些配置为 32 位,有些为 64 位),这导致了冲突。
  • 解决方法
  1. 确保使用一致的地址模型

    • 确认您只在构建命令中使用一个地址模型。如果您希望构建 64 位版本,请在命令中指定 address-model=64
      b2 install --toolset=msvc-14.4 --build-type=complete --prefix="D:\download software\boost_MSVC" link=shared runtime-link=static threading=multi debug release --allow-shared-static address-model=64
      
  2. 清理之前的构建

    • 在运行新命令之前,使用以下命令清理之前的构建结果:
      D:\download software\boost_1_81_0\boost_1_81_0\b2.exe clean
      
  3. 检查安装目录

    • 确保 D:\download software\boost_MSVC\lib 目录中没有旧的库文件。手动删除或使用命令:
      rmdir /s /q "D:\download software\boost_MSVC\lib"
      
    • 这样可以确保在下次构建时没有旧文件造成冲突。
  4. 重新构建

    • 在确认清理后,重新运行 b2 命令,确保所有构建配置一致:
      D:\download software\boost_1_81_0\boost_1_81_0\b2.exe install --toolset=msvc-14.4 --build-type=complete --prefix="D:\download software\boost_MSVC" link=shared runtime-link=static threading=multi debug release --allow-shared-static address-model=64
      

其余内容

h、cpp和hpp头文件之间使用区别

### 如何在 Visual Studio 2022 中添加并配置 Boost 要在 Visual Studio 2022 中集成配置 Boost ,可以按照以下方法操作: #### 下载 Boost 首先需要从官方站点下载 Boost 的源码包。解压后将其放置在一个易于访问的位置。例如 `C:\boost_1_84_0`。 #### 编译生成 lib 文件 如果项目需要用到静态链接或动态链接,则需先编译 Boost 来生成 `.lib` 文件。可以通过运行命令提示符进入 Boost 解压目录,并执行以下脚本完成构建: ```cmd bootstrap.bat b2.exe --toolset=msvc-14.3 address-model=64 architecture=x86 link=static runtime-link=shared threading=multi variant=release stage ``` 上述命令会针对 MSVC 工具集 (对应 VS2022 版本 msvc-14.3),生成适用于 Release Debug 构建模式下的静态链接文件[^3]。 #### 设置环境变量 为了方便后续引用路径设置,在系统环境中新增 BOOST_ROOT 变量指向 Boost 安装根目录(如 `C:\boost_1_84_0`),或者直接将该路径加入 PATH 环境变量中以便全局识别。 #### 配置 Visual Studio 项目属性 打开目标解决方案 (.sln) 或创建一个新的 C++ 控制台应用程序作为测试载体。右键点击工程节点选择 **属性** -> 展开 **C/C++** 节点依次调整如下选项: - **附加包含目录**: 添加 `${BOOST_ROOT}` 或具体路径比如 `C:\boost_1_84_0`. 继续展开 **链接器(Linker)** 节点做进一步设定: - **附加目录**: 输入 `${BOOST_ROOT}\stage\lib`, 即存放已编译好的 .lib 文件位置. - 对于某些特定功能模块可能还需要指定依赖项名称, 比方说线程支持则追加 `libboost_thread-vc143-mt-x64-1_84.lib`. 最后确认无误保存更改退出对话框即可[^2]. #### 测试验证配置有效性 编写一段简单的程序来检验是否正确加载了 Boost 功能组件。下面给出一个例子用于演示 scoped_ptr 类型管理指针资源的能力: ```cpp #include <iostream> #include <boost/scoped_ptr.hpp> int main() { boost::scoped_ptr<int> ptr(new int); *ptr = 42; std::cout << "Value managed by scoped_ptr: " << *ptr << "\n"; return 0; } ``` 当以上步骤均顺利完成之后重新编译整个工程项目应该不会再遇到找不到头文件或是缺少符号定义之类的错误消息了[^4]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值