正則表達式 boost regexp的安裝

正則表達式 boost regexp的安裝

早就據說過這個Boost庫的牛B,只是一直沒有精力來學習,最近在網上查了查,評論有好有壞,但多一點是好的,不過暫時沒有見過有公司使用Boost庫來做爲公司產品開發的,網上也有說Boost庫值得用來學習和研究,可是在作應用方面,考慮到維護什麼的,不太適合。的確也是,做爲公司產品開發的技術,有時候要考慮到不少東西,不過說功能強就一會兒拿來用,之後,技術人員的變更,升級什麼的,若是給公司帶來更多的麻煩,倒還不如使用人人都懂的MFC,只要能把應用作到位,多餘的強功能,不用也罷。。。html

好了,開始學習。。。ios

1、下載和安裝。正則表達式

1.到官網下載個最新的包,我下載的是boost_1_37_0.rarbootstrap

2.新建一個目錄,如:在:d:\Boost,把boost_1_37_0.rar解壓到裏面,如d:\Boost\boost_1_37_0工具

3.網上的資料說,解壓後,絕大多數的類庫就可使用了,由於裏面已經有.h和.cpp的完整源碼,因此直接包含在你的工程也是可編譯過去的。使用方式:個人機子裝了VC 6.0和VS.net 2008,我使用VC 6.0測試了一下,Pass.post

方法:在VC->Tools->Options->Directories->Include files裏面增長D:\Boost\boost_1_37_0就OK了。學習

給個例子以下:測試

#include <vector>
#include <iostream>
#include <boost/lexical_cast.hpp>ui

using namespace boost ;
using namespace std ;spa

int main(int argc, char * argv[])
{
vector<int> v1;
vector<int>::const_iterator ci_v1 ;
int iLength = 0 ;

while( iLength < 10 )
{
    try
    {
      if ( iLength == 5 )
        v1.push_back(lexical_cast<int>("DukeJoe")) ;
      else
        v1.push_back(lexical_cast<int>(iLength));
      }
      catch(bad_lexical_cast &ex)
      {
        cout << ex.what()<< endl ;
        v1.push_back(-1);
      }
      iLength++ ;
    }

    cout << "vector --> " ;
    for ( ci_v1 = v1.begin() ; ci_v1 != v1.end() ; ci_v1++ )
    {
      cout << *ci_v1 << " " ;
    }
    cout << endl ;

    return 0 ;
}

這時候VC 6.0就能夠編譯過去,可使用Boost一些類庫功能了。。。

4.上面的使用方式是,等你的工程須要的時候,纔將Boost一些庫功能進行編譯。可是咱們如今也能夠先將Boost類的功能編譯成.dll和.lib,這樣的話,等到咱們的工程使用的時候,只須要.dll,.lib,還有相應的.h就能夠了,這樣咱們工程的編譯時間也少一點。

通常Boost庫是由多個子庫功能組合起來的,我能夠一會兒所有編譯全部的子庫,也可只編譯某一些子庫,如regex功能子庫。什麼是子庫?D:\Boost\boost_1_37_0\libs下面有多個文件夾,一個文件夾就是一個子庫。

如今咱們先介紹怎麼編譯某個子庫:以regex爲例

個人機子上面裝了VC.net 2008和VC 6.0,由於C++的東西,不少公司仍是使用VC 6.0來開發,不多使用VC.net版本,因此決定使用VC 6.0來編譯Boost庫,而後也在VC 6.0裏面使用Boost庫,而不使用.net版本的東西,可是到了.net 版本的VC.net也是可使用Boost庫的,其安裝和使用過程相似,下面有提示一下的。

方法一:

打開cmd,定位到D:\Boost\boost_1_37_0\libs\regex\build,先打上"D:\Program Files\Microsoft Visual Studio\VC98\Bin\VCVARS32.BAT",命令也使用雙引號括上,這個VCVARS32.BAT,東東厲害了,VC 6.0不像它的哥們VC.net安裝完後,會在環境變量上面加上必要的東西,這個VCVARS32.BAT就是一個加上必要的環境變量的批處理,若是你的VC 6.0安裝在C盤,就改D爲C,跟着,打上命令"nmake /f vc6.mak",就開始編譯了,這裏的nmake調用的是VC 6.0的,不是VC.net的nmake,vc6.mak是make文件,若是你想使用VC.net版原本編譯,如我使用的是VC.net 2008,因此使用vc9.mak,可是你得使用"Visual Studio 2008 命令提示"的cmd,而不是通常的cmd,進去以後,編譯命令改成"nmake /f vc9.mak",就OK了,對於VC.net版本,它也有一個VCVARS32.BAT,大概路徑爲D:\Program Files\Microsoft Visual Studio 9.0\VC\bin\VCVARS32.BAT,也是一個配置環境變量的批處理,在運行編譯命令前,也可使用絕對路徑導一下VCVARS32.BAT。

跟着下來的就是等待編譯完成了。呵呵。

編譯完成後,D:\Boost\boost_1_37_0\libs\regex\build\vc6裏面的.dll和.lib就是咱們所須要的東東了,include files在D:\Boost\boost_1_37_0\boost\regex文件夾裏。

方法二:

這個方法是使用bjam來編譯,什麼是bjam?bjam是一個對Boost庫進行編譯的批處理命令行工具,在那裏能夠獲得它?也是在Boost庫裏面,可是是以源代碼形式提供的,因此咱們得首先把bjam編譯出來,方法以下:

1>定位到D:\Boost\boost_1_37_0\tools\jam\src,使用記事本打開build.bat(先備份一下),裏面有部份內容以下:

//-------------------------------------------------------------------------------------------

:Guess_Toolset
REM Try and guess the toolset to bootstrap the build with...
REM Sets BOOST_JAM_TOOLSET to the first found toolset.
REM May also set BOOST_JAM_TOOLSET_ROOT to the
REM location of the found toolset.

if "_%ProgramFiles%_" == "__" set ProgramFiles=C:\Program Files

//-------------------------------------------------------------------------------------------

若是你的VC安裝在D盤,則要改一下紅色部分配置。

打開cmd定位到D:\Boost\boost_1_37_0\tools\jam\src,打上build.bat直接運行,開始編譯,完成後,在D:\Boost\boost_1_37_0\tools\jam\src\bin.ntx86下面有一個bjam.exe,這個就是咱們想要的bjam了。

上面獲得bjam後,把它拷貝到D:\Boost\boost_1_37_0目錄下,而後咱們如今可使用bjam來編譯咱們的regex子庫了,打開cmd定位到D:\Boost\boost_1_37_0,打上命令"bjam --toolset=msvc-6.0 --build-type=complete --prefix=d:\boost install --with-regex",就能夠開始編譯了。

編譯完成後,D:\Boost下面的include和lib文件夾的東西,就是咱們工程須要的東東了。

5.好,如今咱們介紹怎麼編譯整個Boost庫,就是說一下把Boost庫裏面全部的子庫所有編譯完後,其實很簡單,跟上面編譯單個子庫差水多的命令行,方法以下:

把bjam拷貝到D:\Boost\boost_1_37_0目錄下,打開cmd定位到D:\Boost\boost_1_37_0,打上命令"bjam --toolset=msvc-6.0 --build-type=complete --prefix=d:\boost install",就能夠開始編譯了。上面命令中的--build-type=complete 好像跟之前的版本不同,之前的好像是使用-sBuild="Debug Release"相似的參數,只有使用這--build-type=complete 才能編譯出Debug 和Release版本的庫,使用-sBuild不行。

等待吧,挺久的,據說是2個小時。

編譯完後,D:\Boost下面的include和lib文件夾的東西,就是咱們工程須要的東東了。

6.如今,Boost庫所有子庫假設已經編譯好了,獲得D:\Boost\include和D:\Boost\lib,有兩個東東就能夠在咱們的工程裏面使用Boost庫的功能了。

咱們如今使用VC 6.0開發,得先把VC 6.0配置一下,以下:

在VC->Tools->Options->Directories->Include files 加上D:\Boost\include\boost-1_37\boost

在VC->Tools->Options->Directories->Library files 加上D:\Boost\lib

把上面先前設置過的,

在VC->Tools->Options->Directories->Include files裏面增長D:\Boost\boost_1_37_0

刪掉。

而後打開上面先前編譯經過的工程,rebuild一下,是否是也能夠編譯過去如今?

好了,如今可使用VC 6.0來使用Boost庫做開發了。。。

相關文章
相關標籤/搜索