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的更多相关文章

  1. Boost.Build 简明教程

    Boost.Build 简明教程 目录1. 介绍2. 构建过程3. 基本任务4. 项目管理5. 最佳实践6. 规则参考7. 特征参考 介绍 编译器和平台无关编译系统Boost.Build是一个高级编译 ...

  2. Boost 和 Boost.Build 的设置

    问题: 安装编译完 Boost 后,如果不设置 BOOST_ROOT 和 BOOST_BUILD_PATH 则可能导致使用 bjam 时定位到 Boost 默认的路径 /usr/share/boost ...

  3. Boost.Build特点(译)

    Boost.Build Boost.Build makes it easy to build C++ projects, everywhere. Boost.Build让构建C++项目在任何地方都很容 ...

  4. [boost] build boost with intel compiler 16.0.XXX

    Introduction There are few information about how to compile boost with Intel compiler. This article ...

  5. <转>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 ...

  6. VC++2010下编译STLport,Boost

    VC++2010下编译STLport,Boost 最近在想向Boost转移,努力掌握Boost代码的过程中, STLport版本:5.2.1 Boost版本:1.4.6.1 (1.4.7.0也OK) ...

  7. Linux下Boost交叉编译

    http://davidlwq.iteye.com/blog/1580752 运行环境:ubuntu 12.04, boost 1.50.0 由于要把boost移植到arm板上去,所以折腾了一下,后来 ...

  8. 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 ...

  9. Linux上安装使用boost入门指导

    Data Mining Linux上安装使用boost入门指导 获得boost boost分布 只需要头文件的库 使用boost建立一个简单的程序 准备使用boost二进制文件库 把你的程序链接到bo ...

随机推荐

  1. MySQL 对于大表(千万级),要怎么优化呢?

    http://www.zhihu.com/question/19719997 提问:如何设计或优化千万级别的大表?此外无其他信息,个人觉得这个话题有点范,就只好简单说下该如何做,对于一个存储设计,必须 ...

  2. 使用reuseport和recvmmsg优化UDP服务器

    http://skoo.me/system/2014/03/18/udp-server-performance/ http://www.helplib.net/s/linux.die/65_3223/ ...

  3. 使用libCurl实现断点下载

    关键部分代码如下: #include "curl.h" #pragma comment(lib, "libcurl.lib") size_t CROS_Down ...

  4. oracle命中率模型计算

    命中率模型是在owi之前比较常用的一种诊断性能问题的方法,通过命中率的计算,发现系统中的一些设置是否合理,当命中率不高的时候,通过调整一些参数和设置,提高命中率,有效的提高系统的性能和吞吐量.但当系统 ...

  5. JSONP跨域的原理解析(转)

    JavaScript是一种在Web开发中经常使用的前端动态脚本技术.在JavaScript中,有一个很重要的安全性限制,被称为"Same-Origin Policy"(同源策略). ...

  6. ORACLE解决登陆em状态暂挂方法

    1.找到oracle安装目录中db_1/计算机名_orcl/sysman/config/emd.properties , 用记事本打开emd.properties,在emd.properties文件 ...

  7. java基于xml配置的通用excel单表数据导入组件(五、Action处理类)

    package xxxxxx.manage.importexcel; import java.io.File; import java.util.HashMap; import java.util.M ...

  8. 【转】EditText获取焦点不自动弹出键盘设置--失去焦点的方法,不错

    原文网址:http://zouhuajian01.blog.163.com/blog/static/1176987720121128115813176/ 当我们在activity中加入EditText ...

  9. Method Overloading in WCF zt

    Method overloading is the process of implementing Polymorphism in Object-Oriented Programming. A met ...

  10. HDU-1045 Fire Net

    http://acm.hdu.edu.cn/showproblem.php?pid=1045 Fire Net Time Limit: 2000/1000 MS (Java/Others)    Me ...