首先從Boost的老巢http://www./下載,。下載完成以后是一個(gè)安裝文件(其實(shí)就是進(jìn)行自動(dòng)解壓縮的),。選擇你的目錄解壓縮Boost庫(kù)。然后我們開(kāi)始對(duì)其進(jìn)行編譯我所下載的版本是1.33.1,。
1.cmd
2.進(jìn)入安裝VC的目錄例如c:\Program Files\Microsoft Visual Studio\VC98\Bin目錄
3.運(yùn)行VCVARS32.BAT(這個(gè)操作的作用是對(duì)此控制臺(tái)注冊(cè)VC的環(huán)境變量,,這樣我們就可以在任意目錄使用cl進(jìn)行編譯程序)。
4.進(jìn)入Boost的目錄例如c:\boost_1_33_1\tools\build\jam_src
5.修改build.bat腳本的參數(shù)(如果必要的話,,你的安裝目錄不是c:盤(pán))
將原參數(shù)
if EXIST "C:\Program Files\Microsoft Visual Studio\VC98\bin\VCVARS32.BAT" (
set BOOST_JAM_TOOLSET=msvc set BOOST_JAM_TOOLSET_ROOT=C:\Program Files\Microsoft Visual Studio\VC98\ goto :eof) 修改為(就是你的VC6.0安裝的目錄,,我這里舉個(gè)例子)
if EXIST "D:\Program Files\Microsoft Visual Studio\VC98\bin\VCVARS32.BAT" (
set BOOST_JAM_TOOLSET=msvc set BOOST_JAM_TOOLSET_ROOT=D:\Program Files\Microsoft Visual Studio\VC98\ goto :eof) 6.在剛才打開(kāi)的控制臺(tái)下運(yùn)行
D:\d\boost_1_33_1\tools\build\jam_src\build.bat
最終會(huì)在目錄下生成一個(gè)名為bin.ntx86的文件夾里面包含一個(gè)bjam.exe可執(zhí)行文件,將其拷貝到D:\boost_1_33_1目錄下
7.安裝python可以在www.獲得
8.設(shè)置環(huán)境變量
SET MSVC_ROOT="c:\Program Files\Microsoft Visual Studio\VC98"
SET VISUALC="c:\Program Files\Microsoft Visual Studio\VC98" SET JAM_TOOLSET=VISUALC SET PYTHON_ROOT=D:\Program Files\Python23 SET PYTHON_VERSION=2.3 9開(kāi)始編譯
bjam -sTOOLS=msvc install(將會(huì)安裝在默認(rèn)目錄C:\Boost)
這樣編譯就完成了
10.boost類庫(kù)在VC6.0的IDE環(huán)境中的配置
Tools” -> “Options” -> “Diretories” -> “Show Diretories for”中的下拉框選擇:
1) 在Include files 中添加C:\BOOST\INCLUDE\BOOST-1_33_1\BOOST目錄,。 2) 在Library files 中添加C:\BOOST\LIB目錄,。 11.測(cè)試
如果你不能確定,你的編譯是否成功,。就需要進(jìn)行一下測(cè)試,,拿正則表達(dá)式類為例。
測(cè)試如下程序
#include "stdafx.h"
#include <cstdlib> #include <stdlib.h> #include <boost/regex.hpp> #include <string> #include <iostream> using namespace std;
using namespace boost; regex expression("^select ([a-zA-Z]*) from ([a-zA-Z]*)");
int main(int argc, char* argv[])
{ std::string in; cmatch what; cout << "enter test string" << endl; getline(cin,in); if(regex_match(in.c_str(), what, expression)) { for(int i=0;i<what.size();i++) cout<<"str :"<<what[i].str()<<endl; } else { cout<<"Error Input"<<endl; } return 0; } 輸入:select name from database;
輸出:str:select name from table
str:name str:table 這樣就完成了 單個(gè)庫(kù)編譯方法:(以regex為例)
編譯boost.regex的另一種辦法
1.運(yùn)行vcvars32.bat,,可以幫助設(shè)置好vc命令行環(huán)境 2.cd boost_1_33_1\libs\regex\build 3.nmake -vc6.mak 這種方式可以只編譯regex 這時(shí)會(huì)在當(dāng)前目錄下生成vc6目錄,里面有已編譯好的lib和dll文件, 這樣以后的步驟中可以設(shè)置regex庫(kù)時(shí)指向這里, 包含文件需要設(shè)置到boost_1_33_1目錄 另修正補(bǔ)充: 用bjam編譯regex時(shí),,選項(xiàng)-sTOOLS=vc7中vc7改成vc71,否則下面最終生成工程時(shí)需要改個(gè)文件名( libboost_regex-vc7-mt-sgd-1_33_1.lib -> libboost_regex-vc71-mt-sgd-1_33_1.lib) 點(diǎn)評(píng): 按照這個(gè)方法基本成功 編譯庫(kù),,大部分庫(kù)編譯成功,,由于我主要是用boost.regex 組件 ,這個(gè)庫(kù)是
成功得,測(cè)試通過(guò),,其它得庫(kù)未測(cè)試,,由于我編譯得是1.34.0版本 文件得位置和此文說(shuō)得不一樣 ,build.bat 文件只需要修改一處 if "_%ProgramFiles%_" == "__" set ProgramFiles=F:\
設(shè)置正確得ProgramFiles變量,。
設(shè)置變量的方法:cmd.exe set xxx=yyy
有點(diǎn)疑問(wèn)的地方 yyy 是否要帶引號(hào) 待以后解決?
|
|