Windows VC6編譯安裝Boost庫
作者:
來源:zz
發表時間:2007-05-21
瀏覽次數:
2726
字型大小:大 中 小
(zz)首先從Boost的老巢
http://www.boost.org/下載。下載完成以後是一個安裝檔案(其實就是進行自動解壓縮的)。選擇你的目錄解壓縮Boost庫。然後我們開始對其進行編譯我所下載的版本是1.33.1。1.cmd2.進入安裝VC的目錄例如c:/Program Files/Microsoft Visual Studio/VC98/Bin目錄3.運行VCVARS32.BAT(這個操作的作用是對此控制台註冊VC的環境變數,這樣我們就可以在任意目錄使用cl進行編譯器)。4.進入Boost的目錄例如c:/boost_1_33_1/tools/build/jam_src5.修改build.bat指令碼的參數(如果必要的話,你的安裝目錄不是c:盤) 將原參數 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安裝的目錄,我這裡舉個例子) 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.在剛才開啟的控制台下運行 D:/d/boost_1_33_1/tools/build/jam_src/build.bat 最終會在目錄下產生一個名為bin.ntx86的檔案夾裡麵包含一個bjam.exe可執行檔,將其拷貝到D:/boost_1_33_1目錄下7.安裝python可以在
www.python.org獲得8.設定環境變數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.39開始編譯bjam -sTOOLS=msvc install(將會安裝在預設目錄C:/Boost)這樣編譯就完成了10.boost類庫在VC6.0的IDE環境中的配置Tools” -> “Options” -> “Diretories” -> “Show Diretories for”中的下拉框選擇:
1) 在Include files 中添加C:/BOOST/INCLUDE/BOOST-1_33_1/BOOST目錄。
2) 在Library files 中添加C:/BOOST/LIB目錄。11.測試如果你不能確定,你的編譯是否成功。就需要進行一下測試,拿Regex類為例。測試如下程式 #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
這樣就完成了單個庫編譯方法:(以regex為例)編譯boost.regex的另一種辦法
1.運行vcvars32.bat,可以協助設定好vc命令列環境
2.cd boost_1_33_1/libs/regex/build
3.nmake -vc6.mak
這種方式可以只編譯regex
這時會在目前的目錄下產生vc6目錄,裡面有已編譯好的lib和dll檔案, 這樣以後的步驟中可以設定regex庫時指向這裡, 包含檔案需要設定到boost_1_33_1目錄
另修正補充:
用bjam編譯regex時,選項-sTOOLS=vc7中vc7改成vc71,否則下面最終產生工程時需要改個檔案名稱(
libboost_regex-vc7-mt-sgd-1_33_1.lib ->
libboost_regex-vc71-mt-sgd-1_33_1.lib)點評: 按照這個方法基本成功 編譯庫,大部分庫編譯成功,由於我主要是用boost.regex 組件 ,這個庫是成功得,測試通過,其它得庫未測試,由於我編譯得是1.34.0版本 檔案得位置和此文說得不一樣 ,build.bat 檔案只需要修改一處 if "_%ProgramFiles%_" == "__" set ProgramFiles=F:/ 設定正確得ProgramFiles變數。設定變數的方法:cmd.exe set xxx=yyy有點疑問的地方 yyy 是否要帶引號 待以後解決?