boost的编译方法

转载 2012年03月27日 10:22:53

许多新人对于编译BOOST感到无从下手,甚至因此而放弃使用BOOST,那真的太可惜了,下面我把一些常用的BOOST编译方法贴于此,同时也作为自己的笔记。 
首先下载bjam.exe,复制到 $BOOST$ 目录下。或者自己生成bjam,打开Visual Studio 2008 命令提示窗口$BOOST$\tools\jam\src,执行 build.bat 会在$BOOST$\tools\jam\src\bin.ntx86 生成 bjam.exe 文件。复制文件 bjam.exe  文件到 $BOOST$\下。 
1.完全编译安装: 
bjam --toolset=msvc install 
完成后会生成一个bin.v2编译时的临时目录,手动删除。生成另一个目录C:\boost,里面为所有的头文件和库文件。头文件目录为boost_1_34_1\boost目录复制过去的。 
2.只编译相应的库文件 
bjam --toolset=msvc stage 
完成后同样会生成bin.v2临时目录。另一个目录为stage文件,里面有对应的库文件。 
3.查看需要编译才能使用的库列表 
bjam --show-libraries 
4.编译特定的库,如只编译regex 
bjam --toolset=msvc --with-regex stage 
生成的库文件在stage目录中。 
5.不编译某个库,如不编译regex 
bjam --toolset=msvc --without-regex stage 
生成的库文件在stage目录中。 
6.编译特定的库,如只编译regex,生成debug,多线程,共享连接版本,并保存在stage。 
bjam --toolset=msvc --with-regex stage debug threading=multi link=shared 
7.生成 mt-sgd 的静态库(runtime-link-static) 
bjam "-sTOOLS=vc-8_0" --with-thread install debug release runtime-link=static 
8.编译regex库。 
bjam --toolset=msvc --with-regex stage debug release threading=multi threading=single link=shared link=static runtime-link=shared runtime-link=static 
boost的安装方法: 
对于DLL版本 
bjam --toolset=msvc link=shared runtime-link=shared threading=multi stage debug release install 
对于lib版本 
bjam --toolset=msvc link=static runtime-link=shared threading=multi stage debug release install 
另外,在$BOOST$\tools\build\v2\user-config.jam找到下面的地文 
# ------------------- 
# MSVC configuration. 
# ------------------- 
# Configure msvc (default version, searched for in standard locations and PATH). 
# using msvc ; 
# Configure specific msvc version (searched for in standard locations and PATH). 
# using msvc : 8.0 ; 
#在这里添加 vs2008 的配置 
using msvc : 9.0 : : /wd4819 /D_CRT_SECURE_NO_DEPRECATE /D_SCL_SECURE_NO_DEPRECATE  /D_SECURE_SCL=0 ; 
#在这里添加 vs2005 的配置 
using msvc : 8.0 : : <compileflags>/wd4819 <compileflags>/D_CRT_SECURE_NO_DEPRECATE <compileflags>/D_SCL_SECURE_NO_DEPRECATE <compileflags>/D_SECURE_SCL=0 ;    
然后进入 $BOOST$ 目录,执行bjam.exe 编译命令 
//下面的命令的各选项的说明: 
//prefix    将boost安装到的路径(生成的头文件和库文件都会放到该路径中)。 
//重定义以下变量(利用-s设置): 
//VC80_ROOT   vc2005的安装路径,如果未将vc2005安装到默认位置,你必须指定该项。 
//TOOLS         使用的编译工具,vc2005对应的是vc-8_0 
//PYTHON_ROOT   ython的安装目录,如果未将BOOST安装到默认位置,你必须指定该项。 
//BUILD         编译结果选项,默认会生成尽可能多的版本,如调试版/发行版,静态库/动态库,单线程/多线程。 
bjam 命令说明 
Boost.Build V2 (Milestone 12) 
Boost.Jam 03.1.16 
Project-specific help: 
  Project has jamfile at Jamroot 
Usage: 
  bjam [options] [properties] [install|stage] 
  Builds and installs Boost. 
Targets and Related Options: 
  install                 Install headers and compiled library files to the 
  =======                 configured locations (below). 
  --prefix=<PREFIX>       Install architecture independent files here. 
                          Default; C:\Boost on Win32 
                          Default; /usr/local on Unix. Linux, etc. 
  --exec-prefix=<EPREFIX> Install architecture dependent files here. 
                          Default; <PREFIX> 
  --libdir=<DIR>          Install library files here. 
                          Default; <EPREFIX>/lib 
  --includedir=<HDRDIR>   Install header files here. 
                          Default; <PREFIX>/include 
  stage                   Build and install only compiled library files 
  =====                   to the stage directory. 
  --stagedir=<STAGEDIR>   Install library files here 
                          Default; ./stage 
Other Options: 
  --build-type=<type>     Build the specified pre-defined set of variations 
                          of the libraries. Note, that which variants get 
                          built depends on what each library supports. 
                              minimal (default) - Builds the single 
                              "release" version of the libraries. This 
                              release corresponds to specifying: 
                              "release <threading>multi <link>shared 
                              <link>static <runtime-link>shared" as the 
Boost.Build variant to build. 
                              complete - Attempts to build all possible 
                              variations. 
  --build-dir=DIR         Build in this location instead of building 
                          within the distribution tree. Recommended! 
  --show-libraries        Displays the list of Boost libraries that require 
                          build and installation steps, then exit. 
  --layout=<layout>       Determines whether to choose library names 
                          and header locations such that multiple 
                          versions of Boost or multiple compilers can 
                          be used on the same system. 
                              versioned (default) - Names of boost
                              binaries include the Boost version 
                              number and the name and version of the 
                              compiler.  Boost headers are installed 
                              in a subdirectory of <HDRDIR> whose 
                              name contains the Boost version 
                              number. 
                              system - Binaries names do not include 
                              the Boost version number or the name 
                              and version number of the compiler. 
Boost headers are installed directly 
                              into <HDRDIR>.  This option is 
                              intended for system integrators who 
                              are building distribution packages. 
  --buildid=ID            Adds the specified ID to the name of built 
                          libraries.  The default is to not add anything. 
  --help                  This message. 
  --with-<library>        Build and install the specified <library> 
                          If this option is used, only libraries 
                          specified using this option will be built. 
  --without-<library>     Do not build, stage, or install the specified 
                          <library>. By default, all libraries are built. 
Properties: 
  toolset=toolset         Indicates the toolset to build with. 
  variant=debug|release   Select the build variant 
  link=static|shared      Whether to build static or shared libraries 
  threading=single|multi  Whether to build single or multithreaded binaries 
  runtime-link=static|shared     
                          Whether to link to static or shared C and C++ runtime. 
Configuration help: 
  Configuration file at $boost$\tools\build\v2 
  user-config.jam 
  This file is used to configure your Boost.Build installation. You can modify 
this file in place, or you can place it in a permanent location so that it 
does not get overwritten should you get a new version of Boost.Build. See: 
  http://boost.org/boost-build2/doc/html/bbv2/reference.html#bbv2.reference.init 
for documentation about possible permanent locations. 
General command line usage: 
    bjam [options] [properties] [targets] 
  Options, properties and targets can be specified in any order. 
Important Options: 
  * --clean Remove targets instead of building 
  * -a Rebuild everything 
  * -n Don't execute the commands, only print them 
  * -d+2 Show commands as they are executed 
  * -d0 Supress all informational messages 
  * -q Stop at first error 
  * --debug-configuration Diagnose configuration 
  * --debug-building Report which targets are built with what properties 
  * --debug-generator Diagnose generator search/execution 
Further Help: 
  The following options can be used to obtain additional documentation. 
  * --help-options Print more obscure command line options. 
  * --help-internal Boost.Build implementation details. 
  * --help-doc-options Implementation details doc formatting. 
编译所有版本: 
bjam --toolset=msvc-8.0 --prefix=$lib-and-dll-out-dir$ --build-type=complete install 
等待编译完成. 
设置开发环境: 
打开VS2005 选择 工具->选项->vc++目录 
设置包含文件目录$lib-and-dll-out-dir$\include\boost-1_37\boost
设置引用文件目录:$lib-and-dll-out-dir$\lib 
完成.可以使用了.

http://anders0913.javaeye.com/blog/375303#


转自: http://sswflying.spaces.live.com/blog/cns!A1AF9E41EDCAEF99!584.entry
              http://sswflying.spaces.live.com/blog/cns!A1AF9E41EDCAEF99!515.entry

boost全平台编译方法

0.通用规则boost自带一套编译工具bjam,bjam本身是跨平台的,并且也要自行编译出来。在boost目录下有bootstrap.sh和bootstrap.bat两个脚本分别用来编译*nix和wi...
  • hursing
  • hursing
  • 2015年06月11日 12:00
  • 33082

Boost全平台编译方法

1.通用规则 多数库是不需要预先编译的,include hpp文件就能用。如果出现链接失败,那就是可能需要编译库了。 boost自带一套编译工具bjam,bjam本身是跨平台的,并且也要自...

Win32 平台 Boost 的编译方法

转自:http://blog.csdn.net/livelylittlefish/archive/2010/12/24/6095619.aspxWin32 平台 Boost 的编译方法 本文以 boo...
  • yuyin86
  • yuyin86
  • 2011年06月23日 09:33
  • 602

Linux平台Boost的编译方法

Linux平台Boost的编译方法 Boost的编译使用的不是已经成为公认标准的make,而是专门为Boost开发的工具bjam(boost jam)。 本文以boost1.40为例,在L...

Ubuntu下boost库的编译安装步骤及卸载方法详解

最近由于编译一个程序用到了C++的boost库,所以便安装了这个库。但是,其中遇到了一些小问题。所以记录下来,以供别人参考。 首先说一下我的环境:Ubuntu 12.04 32bit,  g...

Linux平台Boost的编译方法

转载自:http://blog.csdn.net/livelylittlefish/archive/2010/12/24/6095658.aspxLinux平台Boost的编译方法 Boost的编译使...
  • yuyin86
  • yuyin86
  • 2011年06月23日 09:31
  • 529

笔记----boost学习第一步:编译方法

boost被称为是准标准C++库,不过这也是该界人对它的尊称。话说回来,boost确实很强大。不过一般的公司都不会用它。原因是:它不是C++ 标准,这个理由我已经遇到了很多次,很多人不知道是不懂boo...

VC+Boost静态库编译问题、解决方法

通常来说,在大项目里,用动态链接比静态链接体积要小,缺点就是要带上一个crt库。windows现在又引入了manifest,可以指定crt的版本号,这样对于向上兼容是个不错的方法。 如果作为...
  • appcup
  • appcup
  • 2013年01月20日 20:50
  • 441

Ubuntu下boost库的编译安装步骤及卸载方法详解

最近由于编译一个程序用到了C++的boost库,所以便安装了这个库。但是,其中遇到了一些小问题。所以记录下来,以供别人参考。 首先说一下我的环境:Ubuntu 12.04 32bit,  g...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:boost的编译方法
举报原因:
原因补充:

(最多只允许输入30个字)