文章目录
- BOOST库配置
- 上述的细节操作
- 出现的错误
- 错误1
- 错误2
- 其余内容
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、进入bat.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文件
出现的错误
错误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.
您遇到的错误和警告主要有两个方面:配置不一致和库名称冲突。让我们逐一分析并提供解决方法。
- 警告分析
link=shared, runtime-link=static is disabled
:- 这个警告表明您指定的
link=shared
和runtime-link=static
的配置在默认情况下被禁用了,因为这可能导致不安全的使用。要启用它,您需要在命令中添加--allow-shared-static
参数。
- 这个警告表明您指定的
- 错误分析
-
Name clash for '<pD:\download software\boost_MSVC\lib>boost_container-vc144-mt-gd-1_81.lib'
:- 这个错误表明您尝试构建目标两次,并且这些目标的属性不一致。可能是在不同的构建过程中尝试生成相同名称的库文件(例如,一个为 32 位,另一个为 64 位)。
-
<address-model>32
和<address-model>64
:- 这个错误表示在构建中有两种不同的地址模型(32 位和 64 位),这导致了名称冲突。您需要确保所有的构建配置(例如,调试和发布)使用相同的地址模型。
- 解决方法
-
启用共享和静态链接:
在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
-
清理之前的构建:
在执行新的构建之前,确保清理之前的构建文件,以避免名称冲突。可以使用以下命令清理:D:\download software\boost_1_81_0\boost_1_81_0\b2.exe clean
-
确保一致的地址模型:
确保您在同一命令中只使用一个地址模型。例如,如果您希望构建 64 位版本,请确保没有其他构建尝试使用 32 位:- 如果需要构建 64 位版本,请确保 Visual Studio 的项目配置为 64 位,并且命令中不涉及 32 位库。
-
检查安装目录:
确保D:\download software\boost_MSVC
目录是干净的,避免之前的构建遗留文件导致冲突。 -
总结
通过启用--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 位)。这会导致名称冲突,因为同一目录中无法同时存在同名的库文件。
- 错误分析
-
名称冲突:
- 错误信息指示在构建过程中有两个不同的构建尝试生成相同名称的库文件,并且它们的地址模型不同(32 位和 64 位)。
-
不一致的构建配置:
- 可能是在不同的构建过程中,您使用了不同的配置(例如,有些配置为 32 位,有些为 64 位),这导致了冲突。
- 解决方法
-
确保使用一致的地址模型:
- 确认您只在构建命令中使用一个地址模型。如果您希望构建 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
- 确认您只在构建命令中使用一个地址模型。如果您希望构建 64 位版本,请在命令中指定
-
清理之前的构建:
- 在运行新命令之前,使用以下命令清理之前的构建结果:
D:\download software\boost_1_81_0\boost_1_81_0\b2.exe clean
- 在运行新命令之前,使用以下命令清理之前的构建结果:
-
检查安装目录:
- 确保
D:\download software\boost_MSVC\lib
目录中没有旧的库文件。手动删除或使用命令:rmdir /s /q "D:\download software\boost_MSVC\lib"
- 这样可以确保在下次构建时没有旧文件造成冲突。
- 确保
-
重新构建:
- 在确认清理后,重新运行
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头文件之间使用区别