1 boost
1.1 简要介绍
Boost是一个可移植、提供源代码的、为C++语言标准库提供扩展的一些C++程序库的总称,作为标准库的后备,是C++标准化进程的开发引擎之一,相当于是C++准标准库,但Boost中也有很多是实验性质的东西,在实际开发使用中需要谨慎。
1.2 依赖库
boost不需要再配置其他库。
1.3 源码包下载
可以下载预编译版,boost预编译地址:
https://boost.teeks99.com/
也可以下载源码编译,boost源码地址:github:https://github.com/boostorg/boost.git
注意:当克隆boost源码,需要加上子模块递归命令,否则克隆的代码其中的lib库全是空的,运行bootstrap.bat文件,在Building Boost.Build engine时,会报Failed to build Boost.Build engine的错误,如图:
解决方案如下:git clone -b boost-1.74.0 --recursive [https://github.com/boostorg/boost.git](https://github.com/boostorg/boost.git)
但即使通过上述方法,从git官网上克隆下来的代码,lib库也全是空的,最终亲测有效的仓库链接如下:git clone -b boost-1.74.0 --recursive [https://ghproxy.com/https://github.com/boostorg/boost.git](https://gitee.com/link?target=https%3A%2F%2Fghproxy.com%2Fhttps%3A%2F%2Fgithub.com%2Fboostorg%2Fboost.git)
后续:笔者通过克隆上述仓库的boost源码后,编译出的boost库仍不全,很多库都生成不了,查找原因发现在编译的过程中,很多库都报找不到头文件的错误,其实这些头文件很多本身是都有的,就是路径不对,都在lib文件夹下面好几层,所以编译的时候没找到,为了节省时间,笔者最终无奈安装了预编译版的boost库,然后将安装目录下的boost文件夹拷贝到源码目录下,再次编译便能正常生成很多库。
同理,预编译版安装目录下也有lib文件夹,把lib文件夹拷贝到源码目录下也可解决上述“运行bootstrap.bat文件,在Building Boost.Build engine时,会报Failed to build Boost.Build engine的错误”问题。
因此,下载预编译版的boost库,安装后,拷贝安装目录下的boost和lib文件夹到源码目录,再次编译(例如,想要编译成静态库)是最方便的方法,当然,如果不需要再次编译,那么直接使用预编译版安装目录lib64-msvc-14.2下的库文件即可,就不用再拉取源码进行编译了。
2 编译步骤
2.1 生成b2.exe
使用VS tool中的Developer Command终端工具执行源代码路径D:ThirdPartyboostboost_1.74.0下的bootstrap.bat文件。
- 通过开始菜单,找到
VS tool中的Developer Command终端工具并打开,如图:

- 切换至源代码路径目录
D:ThirdPartyboostboost_1.74.0,执行bootstrap.bat文件,运行成功界面如图:

运行成功后,D:ThirdPartyboostboost_1.74.0将生成b2.exe和project-config.jam这两个文件。
2.2 生成boost库
继续在Developer Command命令行终端中执行如下命令:b2.exe install toolset=msvc-14.2 architecture=x86 address-model=64 link=shared runtime-link=shared threading=multi --build-type=complete --build-dir="D:ThirdPartyboostboost_1.74.0_build" --prefix="D:ThirdPartyboostboost_1.74.0_buildinstall" --without-python
命令解释:
b2.exe:编译工具;install/stage:stage表示只生成库文件(.dll/.lib),install还会生成包含头文件的include目录;toolset:VS2019对应msvc-14.2,VS2017对应msvc-14.1,VS2015对应msvc-14.0,VS2013对应msvc-12.0;architecture:表示架构,也就是计算机CPU架构x86/ia64等;address-model:表示地址长度,32/64;--build-type:complete表示编译所有的boost库,默认为complete;link:表示生成动态/静态链接库,动态链接库是shared,静态链接库是static;runtime-link:表示动态/静态链接C/C++运行时库(C/C++ RuntimeLibrary);threading:表示单(single)/多线程(multi)编译,一般我们的程序都会用到多线程;variant:表示生成debug/release库,默认两种库都生成;build-dir:编译生成的中间文件的路径,编译完成后可将这个目录全部删除;--stagedir/prefix:stagedir对应stage,prefix对应install,表示编译生成文件的路径;without/with:表示不需要编译/需要编译哪些库,一些自己不用的库可以不用编译;
注:编译
x64库的指令是architecture=x86 address-model=64,x86库的指令是architecture=x86。
3 实际项目环境配置
注:以下通过属性表的方式进行环境配置。
3.1 附加包含目录

$(boost)includeboost_1.74.0_build
$(boost)(在系统环境变量中添加并设置)就是2.2节表中CMAKE_INSTALL_PREFIX选项的值。
3.2 附加库目录

$(boost)lib
3.3 附加依赖项

将库目录$(boost)lib中文件后缀名为.lib的文件依次添加至附加依赖项中,并依次配置debug版本(库文件中有gd)和release版本,对于下载的预编译版本,库文件中有s的表示静态库。
注意,添加附加依赖项时,不要漏掉文件后缀名
.lib!
3.4 动态库
将动态库目录添加至系统环境变量Path,步骤如下:
- 计算机右击,点击“属性”;
- 点击“高级系统设置”;
- 点击“环境变量”;
- 双击
Path; - 添加
%boost%lib,该目录下是包含了动态库文件。


本文使用的都是相对路径,因此需事先设置好环境变量
boost,值为CMAKE_INSTALL_PREFIX对应的目录,也可以使用绝对路径。

注:上述步骤是按照加载
boost动态库的方式进行配置的;
当然也可以按照静态库的方式配置,可省略步骤3.4。
3.5 测试代码
#include <iostream>
#include <boost/sort/sort.hpp>
#include <algorithm>
#include <vector>
int main()
{
std::vector<int> vec_array;
while (vec_array.size() < 10) {
vec_array.push_back(std::rand());
}
boost::sort::block_indirect_sort(std::begin(vec_array), std::end(vec_array));
std::for_each(std::begin(vec_array), std::end(vec_array), [](int& value) {
std::cout << value << std::endl;
});
std::system("pause");
return 0;
}
最后
以上就是魁梧鞋子最近收集整理的关于Win10系统VS2019+boost_1.74.0环境配置1 boost2 编译步骤3 实际项目环境配置的全部内容,更多相关Win10系统VS2019+boost_1.74.0环境配置1内容请搜索靠谱客的其他文章。
发表评论 取消回复