boost库是每一个C++程序员都应该学会使用的库,也是C++开发中少不了的库,这个库被称为C++的准标准库,很多C++的新标准都是从这个库里面扣出来的。在C++沉沦的十年中,是这个库一直给C++注入蓬勃的生机!紧跟boost库的发展可以说就是在跟进C++标准的发展。
一、下载安装
1、官网下载
下载地址:https://www.boost.org/users/download/
进入下载页面可以看到很多信息:包括boost最新版本、有关boost的说明文档、历史版本等等,见下面截图中的标注说明。2、将下载好的boost安装包解压安装
运行文件夹里面的bootstrap.bat脚本,会生成一个b2.exe可执行文件,如果直接运行b2.exe程序,会在当前文件夹下创建两个文件夹:stage和bin.v2,默认生成静态库,包括发布版Release和调试版Debug,文件中含有gd的是调试版库,生成的静态库在stage文件夹下,bin.v2下是一些中间文件。
默认生成的静态库有32位和64位二、动态库和静态库全部生成的方法
使用上面的方法只能生成静态库,静态库和动态库同时生成,需要使用boost自己提供的命令进行配置生成。
1、查看b2的帮助命令
在终端输入命令:.\b2 --help,会列出许多命令配置参数,如下图中所示,可以根据自己的需要进行配置参数。
2、配置参数
这里配置完全生成动态库和静调库,指定使用VS2017进行编译,并指定生成的目录,命令是:.\b2 --build-type=complete install stage --toolset=msvc-14.1 --stagedir=“D:\InstallThirdLib\BoostLib\VS2017Lib”,具体指令说明如图所示。
输入上面的命令,点击回车之后,就是漫长的等待过程,因为这里采用完全编译,能编译的编译器会全部编译,有些库的编译会依赖其他第三方库,电脑没有安装依赖库的话,会自动跳过编译。
3、查看编译后的文件
执行上面的命令后,会自动在你指定的文件夹下面创建一个lib库,里面就是编译好的静态库和动态库,这里静态库和动态库32位和64位都会生成,这里默认生成的包括发布版Release库和调试版Debug。
4、仅生成调试版静态库或者动态库
在步骤3中我没有设置生成发布版和调试版的参数,默认全部生成,这里增加一个参数variant,可以控制生成Debug版或者Release版的库。仅生成debug版命令如下:
.\b2 --build-type=complete install stage --toolset=msvc-14.1 --stagedir=“D:\InstallThirdLib\BoostLib\VS2017Lib” variant=debug仅生成Release版的话,把variant=debug改成variant=release即可。
这里不再单独演示,这种需求也不多,大部分情况下大家都会两种版本都生成。5、定制生成某个库
仅需要生成某个库或者不需要生成某个库时,可以配置命令参数with或者without。
例如仅生成时间的库配置命令如下:
.\b2 --with-data_time --build-type=complete install stage --toolset=msvc-14.1 --stagedir=“D:\InstallThirdLib\BoostLib\VS2017Lib”三、Linux下安装boost库
linux下安装boost库的命令参数和windows下的参数配置基本一样的。解压boost库后,需要执行文件bootstrap.sh文件,会生成一个可执行文件b2,命令参数使用情况和windows下的一样,不再详述,生成的库一般默认在/usr/local/lib下面。
四、代码测试
这里使用VS2017测试,linux下面不再写测试代码,代码写的简单些,仅供测试使用。
#include
#include <boost/algorithm/string.hpp>
using namespace std;
using namespace boost;int main()
{
cout << “------------测试boost库安装是否正确------------” << endl;
std::string s = “ismileli”;
// 把字符串小写转换为大写
std::cout << boost::algorithm::to_upper_copy(s) << std::endl;
std::cout << “Hello World!\n”;
getchar();
}
运行结果:
能力有限,如有错误,多多指教!作者:ISmileLi