今天学习了下VC6.0下boost的编译,只是对regex进行了编译,据说全部编译需要2个多小时,在此记录下学习过程中遇到的问题以便今后查看。

最开始直接从网上(www.boost.org)下载了当前最新版本boost_1_55_0.zip,无法正常编译,查找原因为vc6.0由于对c++标准支持的不是很好,所以当前的最新版本不支持vc6.0编译,于是尝试着下载了比较老的版本boost_1_39_0.7z进行编译。

1、解压

将下载的boost_1_39_0.7z进行解压,最终在我机子上的绝对路径为:D:\boost\boost_1_39_0

解压路径因人而异,不过最好不要包含中文。

2、编译

在“运行”中输入“cmd”,打开doc窗口

输入->cd D:\boost\boost_1_39_0\libs\regex\build  //回车,设置目录

输入->d:  //回车,转到当刚才设置的目录

此时显示如下:

d:\boost\boost_1_39_0\libs\regex\build>

接下来比较关键

将文件VCVARS32.BAT用鼠标拖入当前的doc窗口,然后回车,再输入:nmake -fvc6.mak 回车,开始进行编译。

VCVARS32.BAT文件是用来注册环境变量的,注册后只在当前窗口有效,窗口关闭后消失,这个文件一般位于vc的安装目录下,

我的路径为:D:\1_setup_dir\VC98\Bin 目录下。如果不注册会出现:“‘nmake’不是内部或外部命令....” 类似的错误提示。

编译结束后会在目录D:\boost\boost_1_39_0\libs\regex\build下面会出现文件夹vc6,里面是lib,dll和一些其他文件,其中lib和dll文件是后

面需要的。

.lib,后面的

测试中会出现错误:无法找到 *****39.lib ,后来将lib和dll中的38都改成39则能够通过测试,后来我测试编译版本boost_1_35_0没有出现类似情况。

3、vc6.0配置

首先将编译好的dll和lib拷贝到目录:D:\1_setup_dir\VC98\BoostRex 下,BoostRex自己创建。

然后打开vc6.0,选择Tools->Options->Directories->Include files 添加一行:D:\boost

在选择Tools->Options->Directories->Library files 添加一行:D:\1_setup_dir\VC98\BoostRex

配置完成

4、编程测试

#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 inStr;  cmatch what;

  cout << "enter test string" <<endl;

  getline(cin, inStr);

  if ( regex_match( inStr.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 table  //回车两次

输出:

str:select name from table

str:e

str:table

Press any key to continue

对于输出结果的由来还需继续学习

参考文章:http://www.360doc.com/content/11/1028/21/1200324_159951943.shtml

VC6.0编译boost的更多相关文章

  1. 比特币初始版本VC6.0编译

    1 源码下载 github上初始版本是bitcoin-0.1.5,可以从https://github.com/bitcoin/bitcoin下载,但是从网上可以找到更老版本bitcoin-0.1.0, ...

  2. 让VC6.0编译出来的程序支持XP样式或XP风格

    (1)VC6.0编译出来的win32程序不支持winxp样式的原因:微软WINXP系统更新了Comctl32.dll(ver 6.0)这个“XP风格”的控件.为了保留传统的Windows界面风格,特地 ...

  3. VC6.0编译DLL,使用VS2010调用问题及解决方法

    1.做驱动的时候.做应用程序须要和驱动通信,必须建立一个DLL. 2.由于客户使用版本号太低,须要使用到VC6.0编写DLL 3.在VC6.0上编写DLL的时候,导出的函数名会出现和原函数名不正确,导 ...

  4. Berkeley DB (VC6.0 编译环境配置)

    操作系统:winxp VC环境:VC6.0 必需文件:Berkeley DB安装文件(db-.msi) 下载地址:http://www.oracle.com/technology/software/p ...

  5. pcre7.0在vc6.0编译

    (0)从http://gnuwin32.sourceforge.net/packages/pcre.htm  (pcre windows)下下载最新的windows平台源代码pcre-7.0-src. ...

  6. VC6.0 编译 gdlib 库

    环境  WinXP, MSVC6.0 1 从  https://bitbucket.org/libgd/gd-libgd/downloads 下载最新版本 libgd 2 可以用 nmake 编译 w ...

  7. 使用VC6.0编译C++代码的时候报错:fatal error C1071: unexpected end of file found in comment(Mark ZZ)

    fatal error C1071: unexpected end of file found in comment(Mark ZZ) 今天在一论坛上看到一人发帖: 『最近遇到一个奇怪的问题,代码中的 ...

  8. 校园导游系统(C++实现,VC6.0编译,使用EasyX图形库)

    运行效果: 说明: 由于当年还不会使用多线程,所以很多获取用户点击的地方都是使用循环实现的...CPU占用率会比较高. 代码: //校园导游系统.cpp 1 #include <graphics ...

  9. 贪吃蛇(C++实现,VC6.0编译,使用了EasyX图形库)

    程序效果: 代码: //main.cpp 1 #include <iostream> #include<fstream> #include <graphics.h> ...

随机推荐

  1. birt 批改导出的文件名【转】

    birt 修改导出的文件名 birt 修改导出的文件名分两种实现方法, 第一种:修改 web.xml 中 配置的 BIRT_FILENAME_GENERATOR_CLASS <!-- Filen ...

  2. 疑难杂症:java.lang.AbstractMethodError: org.apache.xerces.dom.DocumentImpl.setXmlVersion(Ljava/lang/String;)V

    错误: java.lang.AbstractMethodError: org.apache.xerces.dom.DocumentImpl.setXmlVersion(Ljava/lang/Strin ...

  3. spring事务的传播特性

    所谓事务传播行为就是多个事务方法相互调用时,事务如何在这些方法间传播.Spring 支持 7 种事务传播行为: PROPAGATION_REQUIRED 如果当前没有事务,就新建一个事务,如果已经存在 ...

  4. ORB:新一代 Linux 应用

    Orbital Apps 给我们带来了一种新的软件包类型 ORB,它具有便携软件.交互式安装向导支持,以及离线使用的能力. 便携软件很方便.主要是因为它们能够无需任何管理员权限直接运行,也能够带着所有 ...

  5. linux设备驱动之select

    转载:http://blog.csdn.net/mo_hui123456/article/details/7961619 select系统调用用于多路监控,为什么称为多路呢,它可监控多个文件,例如我监 ...

  6. MySQL无视密码进入Server

    在[mysqld]的段中加上一句:skip-grant-tables 如下 [mysqld] skip-grant-tables 即可不输入密码就可以进入mysql server,然后就可以随便修改数 ...

  7. C#采用Winform实现类似Android的Listener

    本文实例讲述了C#采用Winform实现类似Android下Listener的方法.非常实用的一个技巧.具体实现方法如下: 首先是一个ICallBackListener接口,里面要写上你需要Liste ...

  8. C# 之 HttpWebRequest类

    提供 WebRequest 类的 HTTP 特定的实现.       继承层次结构 System.Object → System.MarshalByRefObject →  System.Net.We ...

  9. 巧用FileShare解决C#读写文件时文件正由另一进程使用的bug

    在使用C#进行文件读写的时候,一旦对文件操作频繁,总会碰到一些令人措手不及的意外.例如经常会碰到的一个问题: System.IO.IOException: 文件“XXX”正由另一进程使用,因此该进程无 ...

  10. Android中GridLayout与GridView区别

    GridLayout初步研究:可以这么说这个布局绝对是开发者的福音,它大大简化了对复杂布局的处理,包括性能提高不是一倍两倍.它与GridView是完全不同的概念, GridView是一种适配器布局,它 ...