boost筆記(一) —— 開始

官網 http://www.boost.org/ html

參考網址: http://blog.csdn.net/callmeback/article/details/7715322ios

http://www.cnblogs.com/zhcncn/p/3950477.html bootstrap

首先固然是下載解壓了:Dwindows

源碼: http://sourceforge.net/projects/boost/files/boost/1.60.0/ide

編譯好的binary文件(包括lib和hpp) https://sourceforge.net/projects/boost/files/boost-binaries工具

1、目錄結構

boost_1_60_0\ .................The 「boost root directory」
   index.htm .........A copy of www.boost.org starts here
   boost\ .........................All Boost Header files
   lib\ .....................precompiled library binaries
   libs\ ............Tests, .cpps, docs, etc., by library
     index.html ........Library documentation starts here
     algorithm\
     any\
     array\
                     …more libraries…
   status\ .........................Boost-wide test suite
   tools\ ...........Utilities, e.g. Boost.Build, quickbook, bcp
   more\ ..........................Policy documents, etc.
   doc\ ...............A subset of all Boost library docs

2、Concept

  1.  Boost庫分爲2種:Header-Only Libraries和optional separately-compiled binaries。ui

    前者只須要include便可,後者須要編譯spa

  2. bjam.exe和b2.exe做用是同樣的,後者是升級版。
    .net

3、'Hello world'

Header-Only庫只須要include便可,下面的例子是從官網摘抄
code

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

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

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

VS2010配置,其餘相似:

      1) 附加包含目錄(Additional Include Directories),解壓後的boost根目錄

      2) 取消預編譯,VC++建立工程時,能夠去掉預編譯的勾選

編譯運行後:

輸入一個數字後,輸出該數字*3

4、編譯

能夠從https://sourceforge.net/projects/boost/files/boost-binaries下載安裝包(包含bjam和須要的lib)

1) 生成boost的自用的編譯工具bjam.exe

首先打開「VS2010 開發人員命令提示」(其餘版本相似),cd到boost根目錄,輸入bootstrap.bat(爲嘛取bootstrap?剛開始還覺得看錯了……),會在boost根目錄生成 b2.exe 、bjam.exe 、project-config.jam 、bootstrap.log四個文件。其中,b2.exe 、bjam.exe 這兩個exe做用是同樣的,bjam.exe 是老版本,b2是bjam的升級版本。

能夠從https://sourceforge.net/projects/boost/files/boost-jam/直接下載已編譯好的bjam

2) 使用bjam(或b2)來編譯boost

詳見http://www.boost.org/doc/libs/1_60_0/more/getting_started/windows.html 5.2一節以及http://www.boost.org/build/doc/html/bbv2/overview/invocation.html

或者http://www.cnblogs.com/zhcncn/p/3950477.html

b2 --toolset=msvc-10.0 --build-type=complete

編譯成功後,會出現以下圖所示的提示(include和lib目錄)

5、'Hello world'升級版

#include <boost/regex.hpp>
#include <iostream>
#include <string>

int main()
{
    std::string line;
    boost::regex pat( "^Subject: (Re: |Aw: )*(.*)" );

    while (std::cin)
    {
        std::getline(std::cin, line);
        boost::smatch matches;
        if (boost::regex_match(line, matches, pat))
            std::cout << matches[2] << std::endl;
    }
}

1)附加包含目錄 boost根目錄

2)附加庫目錄 boost根目錄/stage/lib

3)取消預編譯

編譯生成後:

輸入Subject: (Re: )abcd.efg

輸出(Re: )abcd.efg

相關文章
相關標籤/搜索