当前位置:文档之家› boost库编译

boost库编译

①打开你是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”。

相关主题