Boost Build
Window XP + Visual Studio 2008
获取Boost库源码
我们可以从http://www.boost.org/ 上获取boost的源代码。当前最新版本为1.45.0。
解压到指定目录
例如:D:/Program Files/boost/目录下
获取bjam
一种方式:从http://sourceforge.net/projects/boost/files/boost-jam/上下载;
另一种方式:双击D:/Program Files/boost_1_45_0/tools/build/v2/engine/src/build.bat。执行完成以后,就可以在bin.ntx86文件夹中发现bjam.exe,最后,将bjam.exe文件拷贝到D:/Program Files/boost_1_45_0/目录下。
编译指定的boost库
其实,多数的boost库并不需要进行编译的,只有少部分库是平台相关的,需要单独编译,这可以在http://www.boost.org/doc/libs/1_45_0/more/getting_started/windows.html
上看到。
原文如下:

针对这些需要编译的库文件,我们应该如何编译呢?(个人使用的MSVC)
打开CMD,进入boost的主目录,cd “D:/Program Files/boost_1_45_0/”
因为,我们已经将bjam.exe拷贝到BOOST_ROOT/boost_1_45_0下,所以,现在,我们可以直接使用bjam来编译指定的boost库。
可以通过bjam --help查看相关操作,下面将一些常用的参数列出,如下:
--build-dir= 编译的临时文件会放在builddir里(这样比较好管理,编译完就可以把它删除了)
--stagedir= 存放编译后库文件的路径,默认是stage
--build-type=complete 编译所有版本,不然只会编译一小部分版本(确切地说是相当于:variant=release, threading=multi;link=shared|static;runtime-link=shared)
variant=debug|release 决定编译什么版本(Debug or Release?)
link=static|shared 决定使用静态库还是动态库。
threading=single|multi 决定使用单线程还是多线程库。
runtime-link=static|shared 决定是静态还是动态链接C/C++标准库。
--with- 只编译指定的库,如输入--with-regex就只编译regex库了。
--show-libraries 显示需要编译的库名称
举例,如果我们只想编译boost.thread,我们可以使用如下命令:
bjam --toolset=msvc --build-dir=midfiles --stagedir=stage --build-type=complete --with-thread
--toolset=msvc 指定编译器,如果使用其他的编译器,可以自行指定,borland(对应BCB)或msvc(对应VC)或gcc(对应Mingw)
--build-dir=midfiles 指定中间文件的目录,midfiles是我自己随便写的,方便以后删除
--build-type=complete 上面的介绍写的很清楚,就不赘述了
--with-thread 指定需要编译的boost库,当然,不指定也可以,那就全部编译,花费的时间比较长,3、4个小时吧,而且,多数还用不上。
编译完成之后,可以在 D:/Program Files/boost_1_45_0/ 下发现多了两个文件夹midfiles(可直接删除)和stage(可以通过--stagedir=自行指定),需要的lib就在stage文件夹下了。
最后,在Visual Studio环境下设置相应的include和library目录就可以使用boost库了。
Boost Build的更多相关文章
- Boost.Build 简明教程
Boost.Build 简明教程 目录1. 介绍2. 构建过程3. 基本任务4. 项目管理5. 最佳实践6. 规则参考7. 特征参考 介绍 编译器和平台无关编译系统Boost.Build是一个高级编译 ...
- Boost 和 Boost.Build 的设置
问题: 安装编译完 Boost 后,如果不设置 BOOST_ROOT 和 BOOST_BUILD_PATH 则可能导致使用 bjam 时定位到 Boost 默认的路径 /usr/share/boost ...
- Boost.Build特点(译)
Boost.Build Boost.Build makes it easy to build C++ projects, everywhere. Boost.Build让构建C++项目在任何地方都很容 ...
- [boost] build boost with intel compiler 16.0.XXX
Introduction There are few information about how to compile boost with Intel compiler. This article ...
- <转>boost 1.53 and STLPort build binary for windows
1.编译STLPort: 1.1 .开始菜单运行vs2008的命令行工具 1.2.进入E:\00.CODE.SDK\STLport-5.2.1\ 1.2.运行configure ...
- VC++2010下编译STLport,Boost
VC++2010下编译STLport,Boost 最近在想向Boost转移,努力掌握Boost代码的过程中, STLport版本:5.2.1 Boost版本:1.4.6.1 (1.4.7.0也OK) ...
- Linux下Boost交叉编译
http://davidlwq.iteye.com/blog/1580752 运行环境:ubuntu 12.04, boost 1.50.0 由于要把boost移植到arm板上去,所以折腾了一下,后来 ...
- Using Boost Libraries in Windows Store and Phone Applications
Using Boost Libraries in Windows Store and Phone Applications RATE THIS Steven Gates 18 Jul 2014 5:3 ...
- Linux上安装使用boost入门指导
Data Mining Linux上安装使用boost入门指导 获得boost boost分布 只需要头文件的库 使用boost建立一个简单的程序 准备使用boost二进制文件库 把你的程序链接到bo ...
随机推荐
- 【技术贴】解决Program Files文件夹消失
好久不写程序了,今天良心发现,就寻找一下自己是否安装了JDK,习惯性的去C盘的Program Files的文件夹下面去找,次奥,没有这个文件夹.好吧.是在玩我么. 于是 打开cmd 输入如下命令 AT ...
- 李洪强漫谈iOS开发[C语言-028]-sizeof运算符
- Multi-bit per cell storage
Memories Scaling 其他的的半导体存储器的制程一般2年为一个升级周期,但是nand flash 存储器的制程升级周期和他们比起来只有1年.这种更快的制程升级导致SLC NAND ...
- 使用C#画图(饼图折线图)
public PlaceHolder PlaceHolder1; //显示图像的控件 各个图像的类别名称如下: PictureType 图形种类 5 chChartTypeBarCl ...
- (转载)PHP数组传递是值传递而非引用传递
(转载)http://www.fengfly.com/plus/view-212127-1.html 在调用函数时通过将PHP数组作为实参赋给形参,在函数中修改,并不会影响到数组本身. 说明此过程中的 ...
- 我对Burnside定理的理解
我想了想,发现可以证明burnside定理. 置换:n个元素1,2,-,n之间的一个置换表示1被1到n中的某个数a1取代,2被1到n中的某个数a2取代,直到n被1到n中的某个数an取代,且a1,a2, ...
- [转]NHibernate之旅(7):初探NHibernate中的并发控制
本节内容 什么是并发控制? 悲观并发控制(Pessimistic Concurrency) 乐观并发控制(Optimistic Concurrency) NHibernate支持乐观并发控制 实例分析 ...
- datax中oracleWriter
在使用datax的oraclewriter时,由于对oracle的不熟悉,以及c++编译的不熟悉,颇费了一些周折.在此,记录一下,供再次使用的人参考. 1.oracleWriter :oracle提供 ...
- ARM学习笔记1——Arm寄存器与模式的关系
ARM微处理器上有37个32位的寄存器,其中有6个状态寄存器(一个CPSR,5个SPSR),其它31个为通用寄存器.在ARM的不同模式下,可以访问的物理寄存器是不同,如下图所示: 从图中可知,用户模式 ...
- js 打印网页指定内容
function doPrint() { setTimeout(function() { bdhtml=window.document.body.innerHTML; sprnstr="&l ...