boost_1_36_0在vc6下的安装和使用过程

最近学习boost。在网上下载到的是最近版本boost_1_36_0

先这网上找了一些安装的步骤和方法。如下(红色和蓝色是我自己的标注)

------------------------------------------------------------------------------------

1.cmd

2.进入安装VC的目录例如c:/Program Files/Microsoft Visual Studio/VC98/Bin目录

3.运行VCVARS32.BAT(这个操作的作用是对此控制台注册VC的环境变量,这样我们就可以在任意目录使用cl进行编译程序)。

运行的结构是一闪而过,似乎行了。但是一下点击C:/Program Files/Microsoft Visual Studio/VC98/Bin中的CL.EXE(因为以后要用到这个编译器)和nmake.exe,发现提示错误“没有找到mspdb60.dll。因此这个应用程序未能启动,...”。先在自己电脑上C:/Program Files/Microsoft Visual Studio/目录下搜索mspdb60.dll。确实发现C:/Program Files/Microsoft Visual Studio/Common/MSDev98/Bin同样有一个mspdb60.dll。将其拷贝到VC98/Bin中。再点击CL.EXE能运行。同时可以点击一下nmake.exe也能运行。

4.进入Boost的目录例如c:/boost_1_33_1/tools/build/jam_src

发现没有这个目录。其实应该是C:/boost_1_36_0/tools/jam/src(注意后面的两级目录)

5.修改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)

在这个地方不一定要在bat文件中修改。可以考虑直接把这几个路径加入到环境变量中的path中我想也可以,但没有尝试。有兴趣的朋友可以去试试。

6.在刚才打开的控制台下运行

  D:/d/boost_1_33_1/tools/build/jam_src/build.bat

  最终会在目录下生成一个名为bin.ntx86的文件夹里面包含一个bjam.exe可执行文件,将其拷贝到D:/boost_1_33_1目录下

点击build.bat,能运行,但是并没有生成名为bin.ntx86的文件夹。崩溃。用editplus打开bat文件。太长。看不懂。

改了很久还是不能运行出来。

 

用迅雷下载boost_1_34_1版本。遵照上面的步骤和下面的步骤都很顺利,都能运行。把includelib包含到vc6.0。运行测试程序:

#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

测试通过

现在不妨把C:/boost_1_34_1/boost_1_34_1/tools/jam/src下的build.bat复制到C:/boost_1_36_0/tools/jam/src下并重命名为build_1_34_1.bat(为防止以后本目录的build.bat还需要用到)。运行。生成大量的.obj文件。观察发现,事实上,所有的.cpp文件都已经编译成obj文件了。但是仍然没有名为bin.ntx86的文件夹。当然也就没有bjam.exe文件了。估计这个exe也应该是一个编译连接类似的工具。故直接从C:/boost_1_34_1/boost_1_34_1/tools/jam/src/bin.ntx86中将这个bjam.exe拷贝到C:/boost_1_36_0目录下。

现在可以继续以下步骤了:

 

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" 

注意以上两个的路径和自己的vs6.0安装目录有关
SET JAM_TOOLSET=VISUALC
SET PYTHON_ROOT=D:/Program Files/Python23
SET PYTHON_VERSION=2.3

没有python的话不一定要设置以上两个个。但是设置也没有关系。不会出错

9开始编译

bjam -sTOOLS=msvc install(将会安装在默认目录C:/Boost

安装后可以修改默认目录。只要到时候在vc中设置includelib的正确路径就可以。

这样编译就完成了

10.boost类库在VC6.0IDE环境中的配置

Tools” -> “Options” -> “Diretories” -> “Show Diretories for”中的下拉框选择:
1) 
Include files 中添加C:/BOOST/INCLUDE/BOOST-1_33_1/BOOST目录。

2) 
Library files  中添加C:/BOOST/LIB目录。

同样现在来测试boost_1_36_0的正确情况。

先比较boost_1_34_1boost_1_36_0中安装后的include目录下,比较发现多了AccumulatorsExceptionUnitsUnordered目录及其相关文件。参看http://www.boost.org/users/news/version_1_36_0,发现boost_1_36_0确实是新增加了这四个库。由此可知boost_1_36_0基本上应该安装成功。

同样先把boost_1_34_1中的includebinvc6中的引用删除。换成boost_1_36_0的。方法是同上面的第10步。

运行在测试1_34_1版本时的那个程序。同样运行成功。证明boost_1_36_0确实是安装成功了。

 

//

注1:比较安装后的1_34_1版本和1_36_0版本的lib目录,会发现1_36_0版本比1_34_1版本少了很多文件。大小也小了很多。对比发现主要是少了那些最基本的库的lib。最新的几个都有,不知道是不是我先安装了1_34_1版本的原因,没有再重新生成相同的lib文件。如filesystemiostreams等。可以把其直接拷贝到1_36_0lib目录下。应该完全可以的。

注2:vc6不支持模板分离编译。运行boost库到时候会出现很多问题。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值