1. 程式人生 > >(CodeBlocks+MingW)安裝和使用Boost

(CodeBlocks+MingW)安裝和使用Boost

第一步

是下載codeblocks-12.11mingw-setup.exe,下載地址::

第二步

下載Boost,然後解壓到一個目錄.可以到Boost網站(http://www.boost.org/)下載最新的版本.

例如:

我下載的是boost_1_52_0.7z.解壓到目錄:D:\ProgramFiles\boost_1_52_0:

第三步

1、編譯Boost.開啟控制檯,進入目錄D:\ProgramFiles\boost_1_52_0:

cd  D:\ProgramFiles\boost_1_52_0

2、然後生成bjam.exe和b2.exe檔案:

bootstrap.bat gcc  

3、[不使用Python的可忽略這步]下面的方法可以使用python庫:

修改D:\ProgramFiles\boost_1_52_0\tools\build\v2\user-config.jam最後一行即可  
using python : 2.7 : C:/Python27 : C:/Python27/include : C:/Python27/Libs ;  
注意 : 和 ; 都是使用空格分開的,空格不能省略,且路徑不能使用\,一定要使用/才行. 

4、然後在控制檯編譯Boost並安裝Boost到目錄D:\ProgramFiles\boost:

.\b2 --toolset=gcc --prefix=D:\ProgramFiles\boost install
或者使用
.\bjam --prefix=D:\ProgramFiles\boost\ --build-type=complete --toolset=gcc install
漫長等待後就可以了.

如果執行此命令出現錯誤

Unable to load Boost.Build: could not find "boost-build.jam"

那通常是控制檯當前工作目錄(D:\ProgramFiles\boost_1_52_0)不對,新手常犯錯.

編譯完成後下面的目錄會被自動建立:

cpp標頭檔案夾:

D:\ProgramFiles\boost\include\boost-1_52\boost\.....

庫資料夾::

D:\ProgramFiles\boost\lib\......

第四步

在Codeblocks中使用Boost.定義全域性變數boost,注意base,include和lib的填寫,

設定 Code::Blocks中的全域性變數boost
Setting->Global Variables        
i.  單擊New按鈕,建立boost全域性變數
ii. 設定 base: D:\ProgramFiles\boost\
iii.設定include:D:\ProgramFiles\boost\include\boost-1_52
iv.設定lib: D:\ProgramFiles\boost\lib\

如圖所示:

第五步

設定編譯器,如圖所示:

Search directories tab Compiler sub-tab filed entered$(#boost.include)

設定Linker選項

Search directories tab Linker sub-tab filed entered$(#boost.lib)

第六步 測試boost程式

下面是個測試程式testboost.cpp,檔案格式最好儲存為UTF8,這樣中文識別會好一點:

#include <boost/lambda/lambda.hpp>
#include <iostream>
#include <iterator>
#include <algorithm>

int main()
{
    using namespace boost::lambda;
    typedef std::istream_iterator<int> in;

    std::cout<<"測試開始,請輸入字元:"<<std::endl;

    std::for_each(
        in(std::cin), in(), std::cout << (_1 * 3) << " " );

    std::cout<<"測試完畢!"<<std::endl;

    return 0;
}


OK,一切完畢,正常!

關於b2和bjam的用法如下:

Boost.Build 2011.12-svn

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 a minimal set of 
                              variants. On Windows, these are static 
                              multithreaded libraries in debug and release
                              modes, using shared runtime. On Linux, these
                              are static and shared multithreaded libraries
                              in release mode.

                              complete - 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 - Names of boost binaries
                              include the Boost version number, name and
                              version of the compiler and encoded build
                              properties.  Boost headers are installed in a
                              subdirectory of <HDRDIR> whose name contains
                              the Boost version number.

                              tagged -- Names of boost binaries include the
                              encoded build properties such as variant and
                              threading, but do not including compiler name
                              and version, or Boost version. This option is
                              useful if you build several variants of Boost,
                              using the same compiler.

                              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.

                          The default value is 'versioned' on Windows, and
                          'system' on Unix.

  --buildid=ID            Adds the specified ID to the name of built
                          libraries.  The default is to not add anything.

  --python-buildid=ID     Adds the specified ID to the name of built
                          libraries that depend on Python.  The default 
                          is to not add anything. This ID is added in 
                          addition to --buildid.


  --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 E:\SoftWare\Boost_MinGW\boost_1_53_0\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://www.boost.org/boost-build2/doc/html/bbv2/overview/configuration.html

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.

...found 1 target...