zoukankan      html  css  js  c++  java
  • boost-使用说明

    1、

      boost库中大部分组件不需要编译,直接包含对应头文件即可使用,如#include "boost/array.hpp",因为组件的声明和实现都包含在头文件hpp中。

      其它一些库需要编译成静态库或动态库才能使用,如date_time、regex、thread、locale、signals、python等,不过这其中有些库不需要编译也可以使用其部分功能,而且有些库有不必编译的替代品,如xpressive可替换regex,signals2可以替换signals。

    2、

    windows下编译boost库date_time方法:
    ①、官网下载解压boost库文件,当前最新版本为1.61.0,运行根目录中的bootstrap.bat文件,其会生成bjam.exe 。
    ②、在tools/build下找到user-config.jam文件,去掉57行前面的#注释,使之使用msvc(实际中发现省略这步也可以)。
    ③、打开命令行,例如运行 bjam --toolset=msvc --build-type=complete --address-model=64 --with-date_time stage 表示:
        toolset指定编译器,如msvc、gcc;
        build-type=complete为编译所有类型。

        address-model为指定32或64位版本。
        with用来指定要编译哪个库,要编译所有库则忽略该选项;
        stage指定使用本地构建,如果使用install则会将库安装到默认路径(windows下为C:oost,linux下/usr/local);

    ④、关于编译生成的lib文件名:

         vc100表示vc2010,vc140表示vc2015。
         mt:支持多线程
         s:静态库标识
         gd:debug版本

      所以“xxx-mt-sgd-xxx.lib”对应的应该是“多线程调试(/MTd)”,“xxx-mt-s-xxx.lib”对应的应该是“多线程(/MT)”。

    ⑤、运行bjam --show-libraries可以查看需要编译成库才能使用或使用部分功能的库。

    ⑥、如果不想编译date_time库,可以采用直接嵌入date_time库源码的方式来使用date_time库,而且需要在包含源码头文件之前定义宏BOOST_DATE_TIME_SOURCE、BOOST_DATE_TIME_NO_LIB或BOOST_ALL_NO_LIB。

    这是我编译好的一些必须编译成库才能使用的boost静态库:http://download.csdn.net/detail/milanleon/9626409

    3、

      使用boost中array示例:

     如仅按以下方式包含boost头文件的话,VS会报找不到文件错误:

    //main.cpp
    
    #include "boost/array.hpp" //boost文件夹与main.cpp在同一目录,所以可以直接包含
    
    int main()
    {    
        boost::array<int, 5> ary;
    
        return 0;
    }

    因为array.hpp中也使用了其它boost头文件,而且包含形式为:

    //array.hpp
    
    #include <boost/detail/iterator.hpp>
    #include <boost/throw_exception.hpp>
    #include <boost/functional/hash_fwd.hpp>
    ......

    所以还应添加boost文件夹所在的目录为项目“附加包含目录”。

    4、使用date_time库的示例

      date_time库中需要使用其静态库或动态库,所以我们将上面所说的编译好的boost静态库的目录添加到当前项目的附加库目录:项目属性-链接器-附加库目录。

    #include "boostdate_timegregoriangregorian.hpp"
    
    int main()
    {    
        boost::gregorian::date d1(2010, 1, 1);
    
        return 0;
    }
    View Code

     ——本文引用和参考出处:《boost程序库完全开发指南》.罗剑锋

  • 相关阅读:
    一个简单XQuery查询的例子
    《Microsoft Sql server 2008 Internals》读书笔记第七章Special Storage(1)
    《Microsoft Sql server 2008 Internals》读书笔记第八章The Query Optimizer(4)
    《Microsoft Sql server 2008 Internal》读书笔记第七章Special Storage(4)
    SQL Server中SMO备份数据库进度条不显示?
    《Microsoft Sql server 2008 Internal》读书笔记第七章Special Storage(5)
    《Microsoft Sql server 2008 Internal》读书笔记第七章Special Storage(3)
    《Microsoft Sql server 2008 Internal》读书笔记第八章The Query Optimizer(2)
    省市三级联动的DropDownList+Ajax的三种框架(aspnet/Jquery/ExtJs)示例
    FireFox意外崩溃时的手工恢复命令
  • 原文地址:https://www.cnblogs.com/milanleon/p/5857215.html
Copyright © 2011-2022 走看看