VS2008下直接安裝Boost庫1.46.1版本號

      Boost圖書館是一個移植、提供源代碼C++庫。做爲一個備份標準庫,這是C++發動機之間的一種標準化的過程。 Boost圖書館由C++圖書館標準委員會工做組成員發起,一些內容有望成爲下一代C++標準庫內容。html

在C++甚大,是徹徹底底的「準」標準庫。ios

Boost由於其對跨平臺的強調,對標準C++的強調。與編寫平臺無關。大部分boost庫功能的使用僅僅需包含對應頭文件就能夠。少數(如正則表達式庫,文件系統庫等)需要連接庫。網絡

但Boost中也有很是可能是實驗性質的東西,在實際的開發中有用需要慎重。boost 在一些播放軟件和音效中指加強。比方Bass Boost,低音加強。多線程

1.下載最新版的BOOST庫,當前最新版爲1.46.1(2011-3-12公佈)。下載連接地址:http://sourceforge.net/projects/boost/files/boost/1.46.1/dom

2.解壓到硬盤上。其文件夾構造爲ide

boost_1_46_1/ ................................boost根文件夾 
   index.htm ..................... www.boost.org 站點首頁 
   boost/ ..............................所有的Boost頭文件 
   lib/ .................................預編譯的二進制庫 
   libs/ ......................庫的Tests, .cpps, docs等等 
     index.html .............................庫文檔開始處 
     algorithm/ 
     any/ 
     array/ 
                     …more libraries… 
   status/ .........................Boost-wide test suite 
   tools/ ...........有用工具, e.g. bjam, quickbook, bcp 
   more/ .......................................一些文檔 
   doc/ ...............................所有庫文檔的一部分 

3.打開根文件夾下的index.html,在上面的「Getting Started」有介紹怎麼開始使用Boost的,大部分的Boost庫僅僅需要包括頭文件就能夠,少部分需要編譯連接。工具

下面是必須編譯的Boost庫:
    * Boost.Filesystem
    * Boost.GraphParallel
    * Boost.IOStreams
    * Boost.MPI
    * Boost.ProgramOptions
    * Boost.Python
    * Boost.Regex
    * Boost.Serialization
    * Boost.Signals
    * Boost.System
    * Boost.Thread
    * Boost.Wave
另外,一些庫可以是可選擇編譯的:
    * Boost.DateTime (僅僅有當你需要使用它的to_string/from_string或者serialization features, or if you're targeting Visual C++ 6.x or Borland.
    * Boost.Graph (僅僅有當你傾向解析 GraphViz 文件)
    * Boost.Math (the TR1 and C99 cmath functions)
    * Boost.Random (當你需要使用random_device的時候)
    * Boost.Test (can be used in 「header-only」 or 「separately compiled」 mode)
4.下面開始一個無需編譯Boost,直接使用頭文件的演示樣例:
①打開Visual Studio 2008,新建Visual C++project,基於Win32控制檯程序。project名爲example,肯定以後,在彈出的對話框中「應用程序設置」打鉤上「控制檯應用程序」和「空項目」,點「完畢」;
②在「解決方式資源管理器」右擊exampleproject。選擇「屬性」→「C/C++」→「常規」→「附加包括文件夾」。輸入剛纔解壓Boost的文件夾。比方「F:/MyCode/BOOST/boost_1_46_1」,例如如下圖所看到的:

③右擊exampleproject下的「源文件」→「加入」→「新建項」→左邊的「代碼」→選中右邊的「C++文件(.cpp)」。文件名稱爲example。點「加入」,輸入下面代碼:ui

#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) <<  " " ); 

④點擊菜單條上「生成」→「生成解決方式」,正常的話會編譯經過。按F5可看結果,結果例如如下圖所看到的:

這個example代碼的功能是從標準輸入中讀取一系列整型。而後使用boost::lambda使之每個數乘以3,再把結果寫進標準輸出。google


5.如果需要用到那些必須得編譯連接的庫。那麼就得組建編譯Boost庫了。官方文檔上介紹說可以使用安裝版,或者本身編譯源碼,特別介紹推薦在Microsoft Visual Studio開發環境下使用安裝版,因爲安裝版可以直接下載,並且帶有預編譯好的庫。節省本身編譯源碼的麻煩。在這裏。因爲我使用的是Visual Studio 2008,故欲試試使用安裝版。安裝版是boostpro站點製做的,安裝版不是跟官方的Boost同步的。會比較晚一些時間纔會公佈出來。spa

當前最新版BoostPro 1.46.1 Installer (197K .exe)。下載地址:http://www.boostpro.com/download/

5.1執行安裝版。一路「I Agree」,注意會鏈接網絡。必須放行。以後會彈出選擇下載Boost C++庫1.46.1的鏡像地址,默認就好,繼續「Next」,彈出選擇默認的編譯類型,在左側選擇「Visual C++ 9」,在右側選擇類型,咱們通常所用到的執行庫比較多使用多線程。可以在上面的exampleproject看屬性。例如如下圖所看到的:

爲此,咱們僅僅需選擇上面四個選項,再依據動態連接和靜態連接需求進行選擇,例如如下圖所看到的:

接下去就是選擇組件安裝。沒啥問題就默認了,下一步選擇路徑,接着就開始下載了。例如如下圖所看到的:

因爲是鏈接網絡下載。因此得一段比較長的時間。下載完以後就會本身主動安裝好,在設定的文件夾下就有個lib文件夾,裏面就是編譯好的庫。


5.2現在讓咱們測試一下那些需要連接才幹使用的庫:
①打開上面創建的exampleproject,將其cpp文件代碼改成例如如下:

#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; 
    } 

此時。如果生成解決方式的話,就會提示 fatal error LNK1104: 沒法打開文件「libboost_regex-vc90-mt-gd-1_46_1.lib」
②右鍵example解決方式。選擇「屬性」→「配置屬性」→「連接器」→「附加庫文件夾」,加入安裝版下載好的lib庫文件夾路徑,例如如下圖所看到的:

③在菜單條「生成」下拉選擇「生成解決方式」,無警告無錯誤經過。將如下文字保存成文本文檔,文件名稱爲jayne.txt,內容例如如下:

To: George Shmidlap 
From: Rita Marlowe 
Subject: Will Success Spoil Rock Hunter?

 
--- 
See subject. 

而後保存到project文件夾的Debug文件夾下。接着Win+R輸入CMD進入控制檯。cd 轉到此Debug文件夾下,輸入example < jayne.txt命令。例如如下圖所看到的:

回車以後,文本文檔裏面Subject主題的內容就會被正則匹配出來,例如如下圖所看到的:

也可以不進入CMD控制檯,直接在example解決方式右鍵「屬性」→「調試」→「命令參數」,輸入< jayne.txt ,按「肯定」,直接Ctrl+F5執行程序,結果例如如下圖所看到的:


6.最後總結,Visual Studio環境的話可以直接下載安裝版的,省去麻煩的編譯過程。但是不帶幫助文檔,這點得本身再從官方站點下載了。眼下有漢化Boost文檔。另外一些不錯的中文站點。列舉例如如下:
boost文檔漢化:http://code.google.com/p/boost-doc-zh/
在線漢化版文檔:http://www.cppprog.com/boost_doc/

 

我附上編譯庫boost1.46.1_VS2008多線程靜態庫版本號: http://download.csdn.net/source/3147458

相關文章
相關標籤/搜索