概述
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 boost2 编译步骤3 实际项目环境配置所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复