VC++6.0下编译安装Boost.Regex库

  入职培训第二个任务中做的应用识别,应该是比较简单化得那种识别,其中要使用到正则表达式,主要用来匹配包中的特征字段。之前找了网上一些安装方法不知道总是有些小毛病,于是综合了网上很多人的方法,做了蛮多尝试,记录下来让其他一些像我这种入门的也能快速的安装。不要让安装配置环境这种鸟事耽误了项目的进度。

  【1】 首先获取库,这个可以到官方网站上下载,(boost.sourceforge.net)我们是公司提供的库(boost_1_34_0.zip),boost库最好选择比较老的版本,比如 1_34_0/1,比较新的版本好像有点问题,我家里的电脑是VS08,安装非常方便。

  【2】 下载后解压到一个目录下,比如我选择的是(D:\boost),然后就可以开始编译了这里介绍两种方法:

  (1) 使用namke工具 (微软的一个程序维护工具,基于说明文件中包含的命令生成项目的工具) set mainDir = D:\boost\boost1_34_1

进入 cmd 然后cd 到 %mainDir%\libs\regex\build,然后运行 %你的VC安装目录%\vc98\bin\VCVAR32.BAT,注意可直接拖到当前DOS窗口运行,不要在其他窗口运行,或者运行之后关闭,该命令用来设置环境变量的,而且只对当前窗口有效。

然后输入命令 name -fvc6.mak  稍作等待之后,会在build下生成一个vc6的文件夹并在其中生成了regex的lib文件和dll(待会使用)。      

  (2) 使用boost自带的专用编译工具 bjam.exe 但是这个要自己编译生成。

!<  进入%mainDir%\tools\jam\src  找到build.bat右击编辑打开。把“_%ProgramFiles%_”=="_"set ProgramFiles=c:\ProgramFiles 中的        c:\ProgramFiles 改成你自己的 VC++6.0的安装目录,我的就是这个目录,所以不需要改。改完之后,往下看,检查一下 这段代码:if EXIST “%ProgramFiles%”\Microsoft Visual Studio\vc98\bin\vcvar32.bat是否和你的目录一样。

修改后保存,双击build.bat文件运行。这时会在%mainDir%\tools\jam\src  下生成一个bin.ntx86的文件夹里面就是我们需要的编译工具 bjam.exe文件。将bjam.exe拷贝到boost的根目录 即 %mainDir%

在编译之前,我们选定一个目录用来存放生成的lib文件和dll文件,以及必须的头文件,因为我们使用的是 install安装方式,该方式会生成所有的头文件,比如我选择用F:\boost目录来存放编译后生成的文件。

接下来可用bjam命令来编译了

在当前目录下输入如下命令: bjam --toolset=msvc --with-regex --prefix=f:\boost install 回车之后等几分钟,就OK了,编译之后会在你设定的f:\boost下生成两个目录一个是include,一个是lib目录。存放什么肯定都知道了。

  【3】到此基本安装完毕,于是接下来进行测试。进入VC6创建一个BoostTest工程(win32 console工程)然后配置tools-》option 配置目录,在include目录添加刚生成的include目录,lib目录添加刚生成的f:\boost\lib目录。创建一个源文件 regextest.cpp

输入如下代码:

#include <boost/regex.hpp>   /*!< 使用regex库必须包含的头文件*/

#include <string>

#include <iostream>

using namespace std ;

void main()

{

  boost::regex reg_text("^\\w*\\d+\\W$") ;   /*!< boost库中对正则表达式都封装为regex对象*/

  string _text("abcdef123ghou") ;   /*!< 需要匹配的源字符串*/

  if(boost::regex_match(_text,reg_text))  /*!<进行匹配操作*/

    cout<<"ok"<<endl ;

  else

    cout<<"error"<<endl ;

}

到此基本的配置安装工作差不多了,接下来慢慢学习吧。

posted @ 2011-08-05 22:19  _iCDev_Zhou  Views(2622)  Comments(0Edit  收藏  举报