Boost编程实践——准备篇

一个人的一生应该这样度过:当他回首往事的时候,不因虚度年华而悔恨,也不因碌碌无为而羞愧。初中时背诵过的名句片段,与君共勉。

欢迎打开Boost的大门

Boost是一个功能强大构造精巧跨平台开源完全免费的C++程序库。由于Boost着实太丰富,而我又能力有限,只能管中一窥。如果大家想精通Boost,望尽力查阅更多学习资源并加以实践。加油!

如何获取Boost

获取Boost最可靠的方式当然是从官网下载。搬运下载链接到此:boost_1_64_0.7z 或者 boost_1_64_0.zip

解压后的文件如下图所示:

boost_dir

 

如何使用Boost

大多数Boost库都是Header-Only的,即只需在自己项目的源码中包含头文件就可以直接使用。例如,如果要使用boost::tribool(三态布尔值), 只需要在C++源文件中添加如下include语句:

少数需要单独编译Boost库如下所列:

  • Boost.Chrono
  • Boost.Context
  • Boost.Filesystem
  • Boost.GraphParallel
  • Boost.IOStreams
  • Boost.Locale
  • Boost.Log
  • Boost.MPI
  • Boost.ProgramOptions
  • Boost.Python
  • Boost.Regex
  • Boost.Serialization
  • Boost.Signals
  • Boost.System
  • Boost.Thread
  • Boost.Timer
  • Boost.Wave

在Windows上编译Boost库

  1. 打开cmd并切换到Boost根目录
  2. 运行boost根目录下的bootstrap.bat
  3. 执行bootstrap.bat完成配置后,执行b2.exe即可开始编译

执行b2.exe –help可以查看更多编译选项。例如 b2.exe toolset=msvc-14.0指定编译时的平台工具集为msvc-14.0。

接下来,可以用Boost搞事情了

我的Boost路径为D:\eksea\ekseacom\boost_1_64_0,准备工作如下:

  1. 打开vs创建一个win32控制台程序
  2. 设置头文件路径为D:\eksea\ekseacom\boost_1_64_0
  3. 设置库文件路径为:

D:\eksea\ekseacom\boost_1_64_0\bin.v2\libs\regex\build\msvc-14.0\debug\link-static\threading-multi;
D:\eksea\ekseacom\boost_1_64_0\bin.v2\libs\date_time\build\msvc-14.0\debug\link-static\threading-multi;
D:\eksea\ekseacom\boost_1_64_0\bin.v2\libs\system\build\msvc-14.0\debug\link-static\threading-multi;

示例代码如下:

这段代码也许看着一点也不酷,但这个里使用了一个十分酷炫的库——asio。asio库基于操作系统提供的异步机制,采用Proactor模式实现了可移植的异步(或者同步)IO操作,而且并不要求使用多线程和锁,有效地避免了多线程编程带来的副作用(如令人深恶痛的条件竞争、死锁等)。而这里之所以拿asio搞事情,是因为后续我们会使用asio来实现一个极简的http server.

 

在 “Boost编程实践——准备篇” 上有 3 条评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注