官網 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工具
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
Boost庫分爲2種:Header-Only Libraries和optional separately-compiled binaries。ui
前者只須要include便可,後者須要編譯spa
bjam.exe和b2.exe做用是同樣的,後者是升級版。
.net
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
能夠從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目錄)
#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