Boost1.33+VC6+windowsXP 配置boost教程 转载与自己总结

来源:互联网 发布:macbook电池检测软件 编辑:程序博客网 时间:2024/06/05 18:41

  很多人都说boost高版本不支持VC6,但是具体是哪个版本开始不支持就不知道了。有的说1.33.1,有的说1.34,有的说1.37 这个你们自己下下来编译就知道了。
在WindowsXP下 VC6.0 编译安装Boost库

首先从Boost的老巢http://www.boost.org/下载。(这里注意一个问题由于是英文网站我相爱历史版本好像没找到。百度下有这个网页可以下是官方的。 http://sourceforge.net/projects/boost/files/boost/1.33.1/)下载完成以后是一个安装文件(其实就是进行自动解压缩的)。选择你的目录解压缩Boost库。然后我们开始对其进行编译我所下载的版本是1.33.1。
1.cmd
2.进入安装VC的目录例如D:\Program Files\Microsoft Visual Studio\VC98\Bin目录
3.运行VCVARS32.BAT(这个操作的作用是对此控制台注册VC的环境变量,这样我们就可以在任意目录使用cl进行编译程序)。、
4.进入Boost的目录例如D:\boost_1_33_1\tools\build\jam_src
5.修改build.bat脚本的参数(如果你是默认安装的VC就跳过这步)
   将原参数
   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:\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.设置环境变量(这步纠结我了很久,网上的很多都没说清楚,甚至很多都说反了。这步应该在D:\boost_1_33_1\tools\build\jam_src\路径下执行)
SET MSVC_ROOT="D:\Program Files\Microsoft Visual Studio\VC98"
SET VISUALC="D:\Program Files\Microsoft Visual Studio\VC98"
SET JAM_TOOLSET=VISUALC
SET PYTHON_ROOT=D:\Program Files\Python23 (不装python 可以不要)
SET PYTHON_VERSION=2.3                                  (同上)


//SET STLPORT_PATH=\"D:\\\"                     (stlport编译环境设置)

//SET STLPORT_50_PATH=\"D:\\STLport_50\"
//SET STLPORT_VERSION=5.0
//SET STLPORT_VERSIONS=5.0

//SET INCLUDE=\"D:\\STLport_50\\stlport\";%INCLUDE%
//SET LIB=\"D:\\STLport_50\\lib\";%LIB%
9开始编译
bjam -sTOOLS=msvc install(不使用stlport将会安装在默认目录C:\Boost)
//Bjam.exe -sBOOST_ROOT=. -sTOOLS=vc-7_1-stlport \"-sBUILD=debug release <runtime-link>static/dynamic <threading>single/multi\" stage      (使用stlport 语法好像这样才行。 不懂bjam)
这样编译就完成了
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.测试
如果你不能确定,你的编译是否成功。就需要进行一下测试,拿正则表达式类为例。
测试如下程序
 
#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
这样就完成了

0 0
原创粉丝点击