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:\boost,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, > ary; return ;
}
因为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 "boost\date_time\gregorian\gregorian.hpp" int main()
{
boost::gregorian::date d1(, , ); return ;
}
——本文引用和参考出处:《boost程序库完全开发指南》.罗剑锋
boost-使用说明的更多相关文章
- 【Boost】boost库asio详解5——resolver与endpoint使用说明
tcp::resolver一般和tcp::resolver::query结合用,通过query这个词顾名思义就知道它是用来查询socket的相应信息,一般而言我们关心socket的东东有address ...
- boost库使用说明
1 下载安装 2 编译的时候,需要添加头文件和链接对应的库
- VC++2010下编译STLport,Boost
VC++2010下编译STLport,Boost 最近在想向Boost转移,努力掌握Boost代码的过程中, STLport版本:5.2.1 Boost版本:1.4.6.1 (1.4.7.0也OK) ...
- Elasticsearch .Net Client NEST使用说明 2.x
Elasticsearch .net client NEST使用说明 2.x Elasticsearch.Net与NEST是Elasticsearch为C#提供的一套客户端驱动,方便C#调用Elast ...
- 64位win7下安装Boost 1.59.0 + boost.python 1.59.0 + gccxml + pygccxml + pyplusplus(py++)
由于安装过程中实在是出现了N多问题,所以不得不专门写个帖子来记录一下这破东西在Win7下的安装过程,避免以后还要再用的时候踩坑. 1.Boost简介 Boost库是一个可移植.提供源代码的C++库,作 ...
- Elasticsearch .net client NEST使用说明 2.x -更新版
Elasticsearch .net client NEST使用说明 目录: Elasticsearch .net client NEST 5.x 使用总结 elasticsearch_.net_cl ...
- Boost总结汇总
从开始接触Boost已经有好几年了,而对它的掌握却难言熟悉,有对它部分的源代码的剖析也是蜻蜓点水.有时间一点点梳理一下吧. 1. 概述 [Boost]C++ Boost库简介[Boost]C++ Bo ...
- 【VS开发】利用VS2015的工程文件来复制另外一个工程的配置的使用说明
[VS开发]利用VS2015的工程文件来复制另外一个工程的配置的使用说明 标签:[VS开发] 说明:总是有时候会遇到这样的问题,在一个工程中完成了对某些PKG包的包含,包括头文件和库等都能发现,但是我 ...
- SPECCPU2006 Spec2006 使用说明
http://www.vimlinux.com/lipeng/author/penglee5.html Spec2006使用说明 五 10 十月 2014 By penglee 工具介绍 SPEC C ...
- Spec2006使用说明
Spec2006使用说明 五 10 十月 2014 By penglee 工具介绍 SPEC CPU 2006 benchmark是SPEC新一代的行业标准化的CPU测试基准套件.重点测试系统的处理器 ...
随机推荐
- gridview 显示数据库中的超链接
gridview默认情况下,数据库中存储的超链接,是不会显示的.它会直接把超链接字符显示出来. 例如:选定数据源后,gridview自动生成的列是这样的: <asp:BoundField Dat ...
- setTimeout设置为0的意义
今天再看 Promise 代码时,有个地方用到了setTimeOut函数,但是第2个参数设为0,顿时懵逼了,这是啥意思? function resolve(newValue) { value = ne ...
- mysql备份数据库出错mysqldump: [ERROR] unknown option '--no-beep'
公司数据库前一版本是部署在windows上面的,由于业务需要,迁移到linux,之前一段脚本在windows下使用定时任务执行正常. mysqldump -uzzz -pxxxx --opt --de ...
- spirng中的asm与jdk不兼容<已解决>
转载自:spirng中的asm与jdk不兼容<已解决> 前言 不知道前面对eclipse做了什么,使用maven来创建项目,然后转成web,启动的时候一直报错.我弄了好久,还是无法解决,先 ...
- windows2003两台服务器,局域网之间不能互相访问
准备在两台服务器之间,映射网络驱动器,但怎么也连不上了. 可以在网络邻居中看到对方的机器,但就是访问不到共享的文件,也无法做网络映射. 搜索了一下,发现在是因为防火墙中,没有把"文件和打印机 ...
- andorid 全部对话框
.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android ...
- 同一个线程多次调用start()会出现的问题
结果: 线程首先会运行一次,然后抛出java.lang.IllegalThreadStateException异常. 根据控制台的异常信息,定位到Thread.java的第708行,也就start() ...
- RDMA的原理、传输与Verbs
RDMA的原理.传输与Verbs RDMA最早专属于infiniband架构.在网络融合的大趋势下出现的RoCE,使高速.超低延时.极低cpu使用率的RDMA得以部署在目前使用最广泛的以太网上. ...
- *jQuery选择器总结(原创:最全、最系统、实例展示)
jquery选择器包括四部分:一.基本选择器二.层次选择器三.过滤选择器四.表单元素选择器 一.基本选择器1.ID选择器:$('#myDiv');2.类选择器:$('.className');3.元素 ...
- oracle sqlplus操作
步骤: su - oracle 切换到oracle用户 sqlplus /nolog 进入sqlplus命令行 conn cps/cps 连接到cps用户的数据库,cps/cps表示:用户/密码 执行 ...