boost库编译
boost库的介绍

Boost是什么?一套开放源代码、高度可移植的C++库。
谁发起的?C++标准委员会库工作组。
所以,质量保证,不怕遇到假冒伪劣产品。
Boost内容广泛,数值计算、泛型编程、元编程、平台API……不妨从容选择自己感兴趣的部分,细细品味。
有些什么呢?瞧瞧:字符串及文本处理Boost.Regex正则表达式是解决大量模式匹配问题的基础。
它们常用于处理大的字符串,子串模糊查找,按某种格式tokenize字符串,或者是基于某种规则修改字符串。
由于C++没有提供正则表达式支持,使得有些用户被迫转向其它支持正则表达式的语言,如Perl, awk, 和 sed。
Regex提供了高效和强大的正则表达式支持,基于与STL同样的前提而设计,这使得它很容易使用。
Regex已被即将发布的Library Technical Report接受。
更多的信息,请见"Library 5: Regex.".Boost.SpiritSpirit库是一个多用途的、递归的语法分析器生成框架。
有了它,你可以创建命令行分析器,甚至是语言预处理器[1]。
它允许程序员直接在C++代码里使用(近似于)EBNF的语法来指定语法规则。
分析器非常难写,对于一个特定的问题,它们很快就变得难于维护和看懂。
而Spirit解决了这些问题,而且达到了与手工制作的分析器一样或几乎一样的性能。
Boost.String_algo这是一组与字符串相关的算法。
包括很多有用的算法,用于大小写转换,空格清除,字符串分割,查找及替换,等等。
这组算法是目前C++标准库里已有功能的扩展。
Boost.Tokenizer这个库提供了把字符序列分割成记号(token)的方法。
通用的语法分析任务包括了在已分割的文本流里查找数据。
如果可以把字符序列视为多个元素的容器将很有帮助,容器中的元素被执照用户定义的规则所分割。
语法分析就成为了在这些元素上进行操作的单个任务,Tokenizer正好提供了这种功能。
Vc6.0 Boost

vc6.0环境下编译Boost 1.34.1(2009-07-27 17:09:46)转载▼分类:电脑标签:杂谈今天在同学的帮助下,成功的在vc6.0中安装和编译boost库,遇到不少问题,并解决之,把过程大概写一下,以便以后参阅:(主要参考文章:/blog/cns!C523F565A10E3B66!749.entry/liroket/archive/2009/06/10/4257308.aspx)据说c6.0不支持目前比较新版本,如:boost1.36。
这里给出VC6.0编译boost1.34.1的流程。
1.从下载相对应版本的压缩文件,我下载的是boost_1_34_1.zip。
2.解压缩到本地磁盘(这里为d盘),进入F:\boost_1_34_1\tools\jam\src,鼠标右键-》编辑“build.bat”文件。
把if "_%ProgramFiles%_" == "__" set ProgramFiles=c:\Program Files改成自己vc6.0的安装路径,我的是d盘program files,因此我改成了if"_%ProgramFiles%_" == "__" set ProgramFiles=d:\Program Files然后,顺便检查一下该文件中if EXIST "%ProgramFiles%\Microsoft Visual Studio\VC98\bin\VCVARS32.BAT" (set "BOOST_JAM_TOOLSET=msvc"set "BOOST_JAM_TOOLSET_ROOT=%ProgramFiles%\Microsoft Visual Studio\VC98\"goto :eof)是否和你的vc6.0路径相同。
Boost1.62.0编译参数

Boost1.62.0编译参数Boost.Build 2015.07-git项⽬帮助:项⽬在Jamroot有Jamfile⽂件⽤法:B2 [options] [properties] [install|stage]构建和安装Boost⽬标及相关选项: Targets and Related Optionsinstall 将头⽂件和已编译的库⽂件安装到 Install headers and compiled library files to the======= 下列配置位置. configured locations (below).--prefix=<PREFIX> 架构独⽴⽂件安装⽬录 Install architecture independent files here.默认; C:\Boost Win32 Default; C:\Boost on Win32默认; /usr/local Unix. Linux, 等. Default; /usr/local on Unix. Linux, etc.--exec-prefix=<EPREFIX> 架构独⽴⽂件安装⽬录 Install architecture dependent files here.默认; <PREFIX> Default; <PREFIX>--libdir=<DIR> 库⽂件安装⽬录. Install library files here.默认; <EPREFIX>/lib Default; <EPREFIX>/lib--includedir=<HDRDIR> 头⽂件安装⽬录. Install header files here.默认; <PREFIX>/include Default; <PREFIX>/includestage 编译和安装已编译库⽂件到 Build and install only compiled library files to the===== stage⽬录. stage directory.--stagedir=<STAGEDIR> 库⽂件安装⽬录 Install library files hereDefault; ./stage Default; ./stageoptions:--build-type=<type> 编译指定预定义variant集的库. Build the specified pre-defined set of variations of 注意,在编译时使⽤哪些variant the libraries. Note, that which variants get built取决于每个库⽀持什么. depends on what each library supports.-- minimal -- (默认) 编译variant最⼩集. -- minimal -- (default) Builds a minimal set of在Windows上, 它们是使⽤共享运⾏库的 variants. On Windows, these are staticdebug和release静态多线程库. multithreaded libraries in debug and release在Linux上,它们是 modes, using shared runtime. On Linux, these arerelease静态和共享多线程库 static and shared multithreaded libraries inrelease mode.-- complete -- 编译所有可⽤variant. -- complete -- Build all possible variations.--build-dir=DIR 编译在此⽬录,⽽不是编译在 Build in this location instead of building within 代码⽬录。
boost的编译使用

boost的编译使用Boost是一个流行的C++库,它提供了许多功能强大的工具和组件,包括容器、算法、并发编程、图形学、网络编程等。
要使用Boost库,首先需要下载并安装Boost库,然后在编译和链接你的C++程序时包含相应的Boost头文件和链接Boost库文件。
下面我将从编译和使用Boost库的角度来详细介绍。
1. 下载和安装Boost库。
首先,你需要从Boost官方网站下载最新的Boost库源代码。
然后,解压缩文件并按照官方文档中的指导进行安装。
通常情况下,Boost提供了一个名为bootstrap.bat(Windows)或者bootstrap.sh(Linux)的脚本,你可以运行这个脚本来配置Boost 库。
接着,运行b2命令来编译Boost库。
2. 编译和链接Boost库。
一旦Boost库安装完成,你就可以在你的C++程序中使用它了。
在编译你的程序时,确保你的编译器能够找到Boost库的头文件。
你可以使用编译器的命令行选项或者在你的IDE中配置头文件搜索路径。
在链接你的程序时,确保你的编译器能够找到Boost库文件。
你需要指定Boost库文件的路径和库名字,具体的方法取决于你使用的编译器和操作系统。
3. 使用Boost库。
一旦你的程序成功编译和链接了Boost库,你就可以在你的代码中包含相应的Boost头文件,并使用Boost提供的功能和组件了。
比如,如果你想使用Boost的智能指针,你可以包含<boost/shared_ptr.hpp>头文件,并使用boost::shared_ptr类来管理动态分配的对象。
总之,要使用Boost库,你需要下载、安装Boost库,配置你的编译器,包含Boost头文件,链接Boost库文件,并在你的代码中使用Boost提供的功能和组件。
希望这些信息能够帮助你成功地编译和使用Boost库。
boost库的编译以及在CodeBlocks中的配置

Boost库的编译和在CodeBlocks的配置基本信息:时间:2012/11/2Boost库的版本:boost.1.51.0 release版CodeBlocks版本:编译前准备:如果是用gcc编译boost,首先一定要先安装MinGW或者安装带MinGW的CodeBlocks,并给gcc编译器置环境变量。
当然是可以使用VS编译boost库,使用vs新建一个工程编译boost库,可以参考:/boost.html本机使用的gcc的版本:步骤一,从boost的官方网站上下载最新的boost版本库,输入网址:如图所示,一般是官网上是都是最新的Release版和最新的Bata版,这里为了稳等的需求,一般是选择Release版的。
点击download进入下载的页面:这里可以根据网速的需求,下载不同的压缩格式,一般而言,不同的格式,因为压缩率的不同,解压缩的时间也不同。
步骤二.下载完成后,解压缩,解压的后的文件大概是400多MB。
解压后的文件的组织形式如下。
这里,新版的文件组织好像和以前的不同,双击图中的booststrap.bat 文件,此时会出现如下的窗口:这个窗口会出现几分钟,当它消失的会产生两个exe文件:单击并运行这两个文件中一个,一开始的时候,也不是很清楚两者有什么区别,但是后来发现,这俩个程序至少完成的功能是一样的。
运行bjam.exe时,此时,boost开始编译,大概是30-40分钟的样子(注意:不同电脑的时间是不同的,这是一因为编译的时候需要耗费大量的CPU资源和内存资源。
我的笔记本是i3 的处理器,2g 的内存),步骤三.由于是直接运行exe文件的,没看到最后的结果,可以自cmd命令行中,先进入当前的目录,输入cd D:\Users\xj\Downloads\boost_1_51_0\boost_1_51_0 再一次运行bjam.exe,可看到,如下的截图,说明编译成功。
注意,在编译中能会出现一些警告入文件找不到之类的,请忽略它。
pcre 编译以及简单匹配utf-8文本

给个例子:
这个例子我没有测试,东拼西凑而成的,也许无法运行,呵呵。。
参考 /sulliy/article/details/6247155
项目--》“工程的名字”属性-》连接器-》命令行。
在下面的命令行的EDIT控件中输入 pcre.obj
点下 应用 BUTTEN
==================sample===============
#define PCRE_STATIC // 静态库编译选项
#include <pcre.h>
#include <cstdio>
#include <iostream>
#include <fstream>
#define OVECCOUNT 300 /* should be a multiple of 3 */
using namespace std;
int main()
{
char *buffer;
int length;
{ // read a utf-8 file to buffer
ifstream is;
is.open ("a_utf_8.txt", ios::in );
pcre_free(re);
return 1;
}
printf("\nOK, has matched %d...\n\n", rc);
for (i = 0; i < rc; i++) {
char *substring_start = buffer + ovector[2*i];
Boost程序库完全开发指南:深入C ”准”标准库(第5版

3.10总结
4.1 noncopyable
4.2 ignore_unused
4.3 optional 4.4 assign
4.5 tribool 4.6 operators
4.7 exception 4.8 uuid
4.10 utility
4.9 config
4.11总结
5.1 lexical_cast 5.2 format
2.7 date_time库 的高级议题
2.8总结
3.2 scoped_ptr
3.1 smart_ptr库 概述
3.3 shared_ptr
3.4 weak_ptr
3.5 intrusive_ptr
3.6 pool库概述 3.7 pool
3.9 singleton_pool
3.8 object_pool
4
7.4 bimap
5 7.5
circular_bu ffer
01
7.6 tuple
02
7.7 any
03
7.8 variant
04
7.9 multi_ar ray
06
7.11总结
05
7.10 property _tree
8.2 minmax
8.1 foreach
8.3 minmax_element
目录分析
0.1关于本书 0.2读者对象
0.3术语与风格 0.4语言标准
0.6如何阅读本书
0.5本书的结构
0.7本书的源码
1.1简介 1.2开发环境
1.3构建工具 1.4总结
2.1 timer库概述 2.2 timer
2.3 progress_timer
boost安装

或
# ./bjam --build-type=complete --layout=tagged stage
或
# ./bjam
方法2:
# cd /usr/src/boost_1_40_0/tools/jam
# ./build_dist.sh
也会完成Linux平台bjam和Boost的所有编译工作,并生成所有调试版、发行版的静态库和动态库。但不推荐该方式。
方法2:
(1) # cd /usr/src/boost_1_40_0/tools/jam/src
(2) # ./build.sh
编译完成后:
生成的可执行文件为
# /usr/src/boost_1_40_0/tools/jam/src/bin.linuxx86/bjam
需要将bjam.exe拷贝到源代码所在的目录
3. 完整编译Boost
对Boost进行完整编译,生成所有调试版、发行版的静态库和动态库。
方法1:
# cd /usr/src
# wget /projects/boost/files/boost/1.40.0/boost_1_40_0.tar.bz2
# tar --bzip2 -xvf boost_1_40_0.tar.bz2
# cd boost_1_40_0
# bjam --toolset=gcc --build-type=complete stage
或
# ./bjam --build-type=complete --layout=versioned //库名带gcc版本
# cp bin.linuxx86/bjam /usr/src/boost_1_40_0
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
①打开你是boost_1_37_0文件夹②打开tools/jam/src③点击build.bat稍等一下会生成一个新的文件夹,打开里面有一个bjam.exe,复制它然后将它粘贴到boost_1_37_0文件夹里面然后打开vc2005的命令行:开始->所有程序->visualstudio 2005->visual sudio tools->命令提示(也就是那个黑色doc的标志)(许多人用cmd 那个doc命令,许多情况下是不行的,我就试过)假如你的boost文件夹在E:/boost_1_37_0;那么可以这样打命令:1 E:然后回车2 cd boost_1_37_0 然后回车3 bjam.exe 然后回车你的boost库就开始编译了,时间很长~剩下的别人也说得较为清楚,呵呵,;-),我玩boost很久了,从1.34开始就一直玩,很不错4回答者:a_xr13800 - 二级 2009-1-7 22:01我来评论>>提问者对于答案的评价:谢谢哦相关内容• boost 1_33_1 在VC6.0上的安装出现问题 2006-12-17• 1.0 bar boost是什么意思 2009-2-7• 笔记本《上、下、左、右,》键不起作用调不成boost引导顺序,怎样装系统啊 2010-5-12• 联想Y460 I3 intel turbo boost technology device驱动装不了,是什么原因 3 2010-8-1• 我的主板是技嘉770t-us3 装了easy tune 6 可是找不到easyboost 2010-4-28等待您来回答更多∙2回答为什么不用卫星来测控嫦娥二号?∙2回答xyhhdh商业理财∙0回答最近刚买的房子,走的是商业贷款,现交完订金,马上就去交首付款,我...∙0回答用VS2008 新建一个MFC单文档工程,菜单里的改变应用程序外观是怎么实现...∙1回答visual studio 2008 SP1里有STL吗??∙2回答各位编程爱好者,请帮我看看这道C语言题,将中缀表达式转化为后缀表达...∙2回答请问高手,汉武大帝第七集里贵妃们玩的什么游戏???1回答嫦娥二号卫星将在盲控状态下拍月球正面照的电头是什么其他回答共 2 条检举link命令行参数中path 没有把路径加进去。
回答者:雨落深山 - 五级 2008-12-28 12:38检举通常我们使用Boost是不需要编译的,所以不会出现这样的情况,当你使用Boost 的部分需要编译的库的时候就会出现上面所说的这种情况,比如说你所要使用的正则表达式。
所以你现在需要编译Boost1.37.2.3. 安装boostboost是一套开放源代码的,高度可移植的C++库。
它相当于C++标准库(STL)的改进与扩展。
并且,它其中的不少模块,已被下一代C++标准库采用。
的确,boost 库非常注重与C++标准库之间协同性,用户对STL的许多学习或使用的体验,在接触boost时,会很自然地“似曾相识”。
定位上,boost 库希望自己是一个可用于广泛的、不同业务方向的应用都能使用的基础库——这完全和STL的定义一致,但STL太过于基础了,我们来做一个比较吧。
首先,boost是一个基础库。
boost不像wxWidgets那样具备一个明确的业务方向:GUI(虽然wxWidgets也提供了众多其它功能)。
boost提供的功能偏向基础设施,所以它的应用目标更为广泛。
然后,boost和STL比较,STL作为C++必须实现的标准库,它几乎就是在提供成型的,可复用的“数据结构”与“算法”的大全。
boost,特别是2008年发布的1.36版,提供了大量高级功能。
当前包括:“正则表达式”、“线程”、“网络”、“数学”、“图(数学)”、“字符串”、“CRC校验”、“文件”、“日期、时间”、“图(图形处理)”等等模块。
如果在不同语言之间做横向比较,那么我们会发现,Java和C# (.NET)语言,它们的标准库所提供的功能无比广泛,而C++的标准库则相当可怜——甚至连“线程”都没有提供。
boost库非常好地弥补了C++的这一点不足。
和STL类似,boost大量采用现代C++的泛型编程技术。
因此多数模块,我们在使用时,仅仅需要引用其“头文件”;另外有10来个必须或者建议进行编译的模块——但本书下面的教程并没有对这10来个库进行完整编译——至少有两个原因:其一、我们并不立即就用到全部的boost库;其二、如果完整编译,需要使用的时间,可能长达5个小时。
2.3.1. 准备本书光盘自带了安装boost所需要的两个文件,您也可以上boost官方网站(参看本小节尾部的相关网址),下载这两个文件:boost 1.36.0 的源代码压缩文件,推荐下载 7zip 版本:boost_1_36_0.7z”。
boost 编译工具,请选择windows下的可执行文件:boost-jam-3.1.16-1-ntx86.zip下载后,得到源代码压缩文件,如果是7zip格式的“boost_1_36_0.7z”,约25M,解压后,将迅速变为175M,但这仅仅是源代码及文档的大小,在编译过程中,所需的空间更是惊人,请您保证解压缩后文件所在的磁盘驱动器,至少有5个G的可用空间。
boost 的编译工具,可以根据需要,将编译之后库文件,及不需要编译的头文件,统一复制到指定的目录,这样有利于我们得到一个“干净”的boost编译结果目录,本书将采用此方法。
下面,我们假设boost_1_36_0.7z被解压到“X:\tmp\boost_1_36_0”目录下,其中“X:”表示您选用的磁盘驱动器盘符,“tmp”是我们事先创建的文件夹,而“boost_1_36_0”则在解压以后得到。
我们把“X:\tmp\ boost_1_36_0”称为“boost安装源路径”。
接下来,假设我们希望它boost安装到“E:\ boost_1_36_0”目录下,请事先创建好这个文件夹,我们把这个路径,称为“boost安装目标路径”。
请解压“boost-jam-3.1.16-1-ntx86.zip”文件,得到bjam.exe,将它复制到boost安装源路径,即“X:\tmp\boost_1_36_0”之下。
2.3.2. 编译步骤1:打开“开始”菜单,选择“运行”,输入cmd,进入控制台窗口,然后在其内通过cd命令,切换到boost安装源路径下。
本例中为:“X:\tmp\boost_1_36_0”,则过程如下:X: (回车)cd tmp\boost_1_36_0 (回车)步骤2:继续上步,请在控制台内输入:bjam --show-libraries (回车)步骤3:正确情况下,将看到以下输出内容:The following libraries require building:- date_time- filesystem- function_types- graph- iostreams- math- mpi- program_options- python- regex- serialization- signals- system- test- thread- wave步骤4:这里列出的是所有需要编译的boost模块,但我们将放弃对以下模块的编译: wave、mpi、 python、math、graph。
这些模块的具体含义,大家如有需要,请自行查明。
步骤5:继续上步,在控制台内输入:bjam install --toolset=gcc --prefix="E:\boost_1_36_0" debug--without-wave --without-mpi --without-python --without-math--without-graph (回车)步骤6:请特别注意其中加粗部分,更换为您自己的“boost安装目标路径”。
其它部分作如下说明:步骤7:-- 是两个连续的减号,=前后均不能夹带空格,除路径之外,参数都是小写字母。
步骤8:--toolset 表示采用gcc编译。
这里指的mingw32下的gcc。
因此,要正确编译boost,请您一定事先已完成2.1小节中,有关Code::Blocks下mingw32环境的安装。
步骤9:debug表示我们首先编译“调试版”。
步骤10:多个 --without 指定了所要放弃编译的模块。
步骤11:回车后,控制台内将出现大量看似奇奇怪怪地文字,最后能看到以下内容,就表示成功完成本步:...failed updating 2 targets....skipped 31 targets......updated 341 targets...步骤12:继续上步,在控制台内输入:bjam install --toolset=gcc --prefix="E:\boost_1_36_0" release--without-wave --without-mpi --without-python --without-math--without-graph (回车)步骤13:改变的是“debug”更换为“release”。
回车后开始发行版的boost 库编译。
2.3.3. 补充如果您的硬盘还有很大的空闲,比如还有50G空间没用上呢,那么我们也不反对——应该说是非常地支持——事实上是非常地艳羡——您完整地编译boost。
〖危险〗:编译boost:时间与空间双重负担没错,我们马上就要提供“boost完全编译”的方法,但先要郑重提醒您:完整编译boost,不仅需要接近5个小时的等待,而且在空间上,需要高达12~15G 的磁盘空间。
完整编译boost的命令行:bjam install --toolset=gcc --prefix="您的\boost\安装\目标路径"--build-type=complete2.3.4. 结束检查“boost安装目标路径”,应该可以看到两个子目录位于其内:“include”及“lib”,前者保存着所有采用纯头文件形式提供的boost代码文件;后者则保留着上一步的编译结果,这些库文件首先可以区分为以下三种形式:“动态链接库”,扩展名以.dll结束“导入库”,扩展名以.lib结束,且文件名以版本号1_36结束“静态链接库”,以扩展名.lib结束。
然后三种形式再次区分为“发行版”和“调试版”,后者的文件名比前者多出一个“-d-”修饰。
另外我们还可以看到所有库文件名中都带有“-mt-”字样,这是表示这些库都支持“多线程/Multithreads”。