幾分鐘讓你了解Visual Studio Boost的配置方法
隨著時代的進步科技的發(fā)展Visual Studio Boost版本也快速的簡化與升級,下面我就對升級前和升級后的Visual Studio Boost,做一下自己的解析,希望能夠?qū)Υ蠹矣袔椭?在這里拿出來和大家分享一下。
并且我也希望能通過這幾個小程序使讀者能對Visual Studio Boost有一個初步的認識,并盡快加入Boost的用戶行列。在寫本文的時候,我所使用的環(huán)境是Windows XP Home Edition + Boost1.33.1 + Visual Studio .NET 2003 首先是從Boost的主頁上下載相關(guān)的Boost的壓縮包,我下載的是boost_1_33_1.zip,假定我們解壓到D盤根目錄。解壓后的目錄結(jié)構(gòu)應該類似 boost_1_33_1<目錄> -- boost <目錄> -- doc <目錄> -- libs <目錄> -- more <目錄> 等等這些目錄和文件。
打開Visual Studio .NET 2003 選擇菜單 工具-->選項-->項目-->VC++目錄,在“包含文件目錄”里,增加一行,如:D:\boost_1_33_1。這樣你就可以使用大多數(shù)的Boost類庫?,F(xiàn)在我們來寫一個小程序,感受一下Boost。
- #include <vector>
- #include <iostream>
- #include <boost/lexical_cast.hpp>
- using namespace boost ;
- using namespace std ;
- 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 ;
- }
直接在VS2003里的包含目錄加入Visual Studio Boost的目錄后,絕大多數(shù)的類庫就可以使用了,但還有少數(shù)的類庫需要額外再生成對應操作系統(tǒng)的動態(tài)庫,才可以使用。我們以Windows+VS2003為環(huán)境,以regex類庫舉例說明。
regex為我們提供了正則表達式功能,其中boost的regex支持perl語法,更極大的提升了我們使用正則表達式所產(chǎn)生的效果。但要想使用regex,我們需要生成相關(guān)的lib文件才可以。#t#
生成的步驟如下:開始 --> Microsoft Visual Studio.NET 2003 --> Visual Studio.NET 工具 --> Visual Studio.NET 2003 命令提示。使用這個命令提示符之后,VS就會為我們自動配置好VC環(huán)境。打開命令提示符之后,我們進入目錄 D:\boost_1_33_1\libs\regex\build ,現(xiàn)在我們敲入 nmake /fvc71.mak 生成lib文件。生成lib文件之后,我們單獨建一個文件夾,例如我建立的是d:\boost_libs,然后把所有的*.lib文件拷貝到這個目錄。
然后我們打開VS2003,選擇菜單 工具-->選項-->項目-->VC++目錄,在“庫文件”里加入目錄d:\boost_libs,這樣VS2003在鏈接時,就會搜索這個目錄。