博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在Visual Sutdio 2017中使用boost库
阅读量:7113 次
发布时间:2019-06-28

本文共 1730 字,大约阅读时间需要 5 分钟。

对C++有一定了解的同学一定听说过boost库,这是C++的一个著名类库,在C++的地位感觉可以和Spring在Java中相比。boost向来有准标准库之称,很多新特性例如智能指针等都是先在boost中实现,后来被吸收到标准库之中。而且boost实现了日志、算法、日期、地理、数学、线程协程等各种实用工具,所以如果要学习C++,boost是必须要学习的一个东西。

安装boost

下载boost

boost官网是,目前最新的版本是1.65.1,可以到下载。下载页面里有Unix和Windows的源码,以及Windows版本的第三方二进制包。我们选择下载源码。

下载完成后解压到一个目录,例如我就放到了D:\DevTools\boost_1_65_1,目录结构如下图。

img_76e1cb79445b2956bda835fb3e8a737a.png
目录结构

boost目录下是boost的头文件,libs下是boost的源代码。其他文件夹的内容是文档和一些工具等等,就不介绍了。

添加环境变量

将你放置boost代码的目录设置为环境变量BOOST_ROOT,这个目录将在后面用到。

生成boost命令行工具

首先确保你安装了Visual Studio 2017,并安装了 Visual Studio 2017 Developer Command Prompt工具。

打开VS 2017 Developer Command Prompt,切换到boost目录,执行bootstrap.bat脚本,如果执行成功的话,会生成b2.exe等几个工具,这样生成工具的工作就完成了。

在VS中设置

在VS中新建一个C++项目,然后打开项目属性页,然后切换到VC++目录,在包含目录和库目录中分别添加BOOST_ROOTBOOST_ROOT\libs两个文件夹。

img_10aa243c349e5bf82216087239e1c939.png
项目属性页
img_368bdaadadd3a93b683608f7ef275af8.png
包含目录
img_3e7761bc2bfc5ad26e34ed98f58424a3.png
库目录

配置完成后,就可以在项目中使用boost了。当然对于Visual Studio来说,还有更简单的办法,那就是使用NuGet。

使用NuGet添加

配置完之后,我还发现微软的NuGet竟然也可以添加boost。方法很简单,在项目菜单中点击管理NuGet包,然后搜索boost,然后点击右边的下载按钮即可。

img_87b0858bc882bddeccf71952d2809fd0.png
NuGet安装boost

由于boost是一个比较大的库,所以这个安装过程可能需要多花费几分钟。安装完成后boost类库会放到项目文件夹的package文件夹中。NuGet会自动帮我们配置好包含路径等设置。我们接下来直接使用就可以了。

运行boost程序

配置好之后,就可以运行boost程序了。例如这里我准备使用boost库的一些高精度(最大可达100位)数学常量(值得吐槽的是C++标准库居然没有像样的数学库,能用的只有<cmath>,而且甚至连PI常量都没有)。

#include 
#include
#include
#include
using namespace std;using namespace boost::math::constants;using namespace boost::multiprecision;int main(){ cout << "圆周率是:" << setprecision(50) << pi
() << endl; cout << "自然对数e是:" << setprecision(50) << e
() << endl; cout << "根号2是:" << setprecision(50) << root_two
() << endl; return 0;}// 圆周率π是:3.1415926535897932384626433832795028841971693993751// 自然对数e是:2.7182818284590452353602874713526624977572470937// 根号2是:1.4142135623730950488016887242096980785696718753769

转载地址:http://lvwel.baihongyu.com/

你可能感兴趣的文章
bui前端框架+yii整理
查看>>
android之间传递list
查看>>
要注意一下xss攻击啊
查看>>
android模拟器(genymotion)+appium+python 框架执行基本原理(目前公司自己写的)...
查看>>
Java并发编程-总纲
查看>>
mac android 安装 apk
查看>>
win2008开启和禁止PING
查看>>
金融学英语
查看>>
ORACLE之SQL语句内部解析过程【weber出品】
查看>>
Android预安装可卸载程序
查看>>
C++多态与虚函数
查看>>
javascript中数组的深拷贝的方法
查看>>
Lua函数之一
查看>>
Android系统启动过程详解【转】
查看>>
常看本地是否安装Git和maven工具
查看>>
JavaScript 将两个数组合并,且删除重复的值
查看>>
sql server统计字段的值在某些范围内中的个数
查看>>
UEFI EVENT 全解
查看>>
python时间模块小结
查看>>
BZOJ3997:[TJOI2015]组合数学(DP,Dilworth定理)
查看>>