今天学习了下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. pthread_mutex_t

     在Linux中使用线程 http://blog.csdn.net/jiajun2001/article/details/12624923 :LINUX就是这个范围作者   原创作品,允许转载,转载时 ...

  2. C#中listbox中选中多项,并删除

    1.SelectionMode 改成可以多选2.利用KeyDown事件: private void listBox1_KeyDown(object sender, KeyEventArgs e) { ...

  3. 使用sharepreferce记录数组数据

    使用sharepreferce记录数组数据 /** * * sharepreference纪录news数据 * * */ private static final String name=" ...

  4. IOS 沙盒机制 && 关于document\library\tmp的灵活使用

    默认情况下,每个沙盒含有3个文件夹:Documents, Library 和 tmp.因为应用的沙盒机制,应用只能在几个目录下读写文件Documents:苹果建议将程序中建立的或在程序中浏览到的文件数 ...

  5. Java SE --- 自增自减

    关于变量的自增与自减运算.   1) int b = a++,作用是将a的值先赋给b,然后再让a自增1.   2) int b = ++a,作用是将a的值先自增1,然后将自增后的结果赋给b. 直接上例 ...

  6. 《Cortex-M0权威指南》之体系结构---栈空间操作

    转载请注明来源:cuixiaolei的技术博客 栈空间作为一种存储器使用机制,是"先入先出"的结构,在系统空间中用作临时数据的存储.栈空间操作的关键之一为栈指针寄存器,每次执行栈操 ...

  7. 构建项目AppFuse+QuickStart

    AppFuse是一个完整的框架来构建web应用程序.它最初是为了构建新的web应用程序少走弯路.多年来,它已成为一个非常成熟的可测试和创建基于java的web应用安全系统.在其核心,AppFuse是项 ...

  8. Linux常用命令之awk

    标题:awk命令的使用 作用:awk是非常好用的数据处理工具,主要处理每一行的字段内的数据,默认的字段的分割符为空格键或[tab]键 一.awk脚本的基本结构: awk 'BEGIN{print &q ...

  9. ionic中input框禁止输入问题

    其实这个问题在之后沥青思路之后觉得还是挺好实现的,没有思路的时候真是找不到头绪~ 功能的描述为:当输入框中没有内容时,允许用户编辑:当其中有内容时不允许用户编辑,只有当用户点击编辑按钮后,才可允许编辑 ...

  10. GSS5 spoj 2916. Can you answer these queries V 线段树

    gss5 Can you answer these queries V 给出数列a1...an,询问时给出: Query(x1,y1,x2,y2) = Max { A[i]+A[i+1]+...+A[ ...