Boost库简介及编译

关于boost库

boost库是一个功能强大的跨平台的开源c++程序库,boost库是由c++标准委员会成员之一的Beman G.Dawes发起倡议并成立Boost社区,致力于向c++成员提供免费的,经过同行评审的可移植的c++程序库。Boost库强调与c++标准库能够完美配合,致力于既有的实践和提供参考实现,使得Boost库非常适合标准化,目前已经有很多Boost库被包含的TR1库和c++11标准中,还有很多被建议包含到c++17的标准中,因此Boost库又有c++准标准库之称。

boost库的编译

boost库的获取

boost库从http://www.boost.org/获取,目前最新的版本是1.6.3版本,有Windows和unix两个版本,我们这里下载Windows版本的。下载完成后解压到任意位置,我这里解压到c盘根目录下,其中boost目录存放的是boost库源文件,使用时需要将该目录添加的includepath中,libs目录存放的是boost库帮助文档,tools目录下存放的是编译时需要的一些工具,boost源文件以.hpp结尾,表示头文件和实现文件在一个文件中,因此大多数的boost库只要直接引用源文件就可以直接编译使用,只有少数几个需要编译使用,包括regex,python,math,log等,python库的编译需要安装python开发环境,具体的那些库需要编译,可以通过b2 –show-libraries来查看。

boost库编译

  1. 打开控制台切换到boost库目录,执行bootstrap.bat,库目录下就会生成b2.exe,bjam.exe文件,b2和bjam作用一样,b2是bjam的升级版。
  2. 输入b2 –help可以查看编译时的一些参数。下面是编译是一个典型实现

    b2 stage –stagedir=”C:\boost_1_63_0\vc14\x64” –toolset=msvc-14.0 –without-python –without-mpi –without-graph address-model=64 –build-type=complete –build-dir=”C:\boost_1_63_0\build”

    其中stage将编译好lib和dll文件输出到stage目录下,默认会在当前目录下创建stage目录,通过–stagedir指定stage的具体指代目录;–toolset表示编译链接使用的工具集这里msvc-14.0表示vs2015; –without-库名称表示不编译那个库,这里–without-python表示不编译python库,–without-mpi表示不编译mpi(message passing interface library), –without-graph表示不编译图像库, python库需要安装Python开发环境,mpi库需要MPICH的支持; address-model表示编译多少位的,这里编译64位的库,如果不设置表示32位程序;–build-type表示编译时设置的一些预定定义的变量,有minimal和complete两种,minimal是默认值表示编译静态的多线程的debug版和release版的库,并使用共享的链接方式,complete表示所有可能的预编译选项;–build-dir表示编译时中间文件的输出路径,如果不设置就会生成到当前目录下的b2目录下。

boost简单使用实例

打开Qt Creater新建一个控制台工程BoostTest,在BoostTest.pro中添加includepath+=boost文件源目录,我这里是c:/boost_1_63_0/boost
修改main.cpp文件如下:

#include 
#include 
using namespace boost;
using namespace std;
int main(int argc, char* argv[])
{
    timer t;
    cout << timer.elapsed_min()<< endl;
}

输出如下:
0.001 表示timer的最小度量时间为1毫秒

你可能感兴趣的:(boost库每日一练)