在Visual Sutdio 2017中使用boost库

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

安装boost

下载boost

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

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

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两个文件夹。

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

使用NuGet添加

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

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

运行boost程序

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

#include <boost/math/constants/constants.hpp>
#include <boost/multiprecision/cpp_dec_float.hpp>
#include <iostream>
#include <iomanip>

using namespace std;
using namespace boost::math::constants;
using namespace boost::multiprecision;

int main()
{
    cout << "圆周率是:" << setprecision(50) << pi<cpp_dec_float_50>() << endl;
    cout << "自然对数e是:" << setprecision(50) << e<cpp_dec_float_50>() << endl;
    cout << "根号2是:" << setprecision(50) << root_two<cpp_dec_float_50>() << endl;
    return 0;
}
// 圆周率π是:3.1415926535897932384626433832795028841971693993751
// 自然对数e是:2.7182818284590452353602874713526624977572470937
// 根号2是:1.4142135623730950488016887242096980785696718753769

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏北京马哥教育

Linux系统六个最佳PDF文档阅览器,看看哪款更适合你

目前,互联网在线图书与其他相关文档正越来越多的使用PDF格式的文件,因此如果你使用的是桌面Linux发行版,那么选择一个合适的PDF阅览器就变得格外重要。 在本...

42650
来自专栏Debian社区

Pardus 17.1 发布,基于 Debian 的发行版

此次更新内容:新版本提供了三个不同名称的独立 ISO 映像表明意图 — Xfce,DDE(Deepin 桌面环境)和服务器。

13340
来自专栏恰童鞋骚年

.NET Core微服务之基于Consul实现服务治理

  Consul是HashiCorp公司推出的开源工具,用于实现分布式系统的服务发现与配置。与其他分布式服务注册与发现的方案,比如 Airbnb的SmartSt...

1.2K40
来自专栏葡萄城控件技术团队

如何搭建基于C#和 Appium 的 Android自动测试环境

如果想做手机端的自动化测试,Appium是首选的测试框架,因为网上使用的人多,资料丰富,支持语言多 Jave,Python,C#,Ruby,PHP,碰见问题也容...

12420
来自专栏张善友的专栏

腾讯社区开放平台.NET SDK在Mono下运行

腾讯社区开放平台.NET SDK在CentOS下运行发生了如下错误: QzoneException:  QConnectSDK.Exceptions.Qzon...

21880
来自专栏工科狗和生物喵

Mac OS X 下非官方软件自启动处理

正文之前 说是处理,想必也没几个人喜欢自启动的软件,我是一个控制欲比较强的人,开机自启搜狗输入法这个我能接受,但是像印象笔记啊,向日葵圆孔Client客户端这些...

69760
来自专栏iOSDevLog

Android Studio 配置 Shadowsocks 代理

2.1K90
来自专栏FreeBuf

案例分析:利用OAuth实施钓鱼

OAuth百科 OAUTH(Open Authorization)协议为用户资源的授权提供了一个安全的、开放而又简易的标准。同时,任何第三方都可以使用OAUTH...

24990
来自专栏小白课代表

软件分享 | 3DS MAX 2016安装教程

3D Studio Max,常简称为3d Max或3dsMAX,是Discreet公司开发的(后被Autodesk公司合并)基于PC系统的三维动画渲染和制作软件...

11420
来自专栏小白课代表

Autodesk 3DS MAX 2018安装教程

3D Studio Max,常简称为3d Max或3dsMAX,是Discreet公司开发的(后被Autodesk公司合并)基于PC系统的三维动画渲染和制作软件...

19730

扫码关注云+社区

领取腾讯云代金券