本站首页    管理页面    写新日志    退出


«August 2025»
12
3456789
10111213141516
17181920212223
24252627282930
31


公告

戒除浮躁,读好书,交益友


我的分类(专题)

日志更新

最新评论

留言板

链接

Blog信息
blog名称:邢红瑞的blog
日志总数:523
评论数量:1142
留言数量:0
访问次数:9701139
建立时间:2004年12月20日




[c++]vc6编译boost
原创空间,  软件技术,  电脑与网络

邢红瑞 发表于 2006/11/23 19:05:02

写程序这么多年了,害怕与中国的程序牛打交道.例如以前vc6编译boost1_33_1挺好的,boost_1_34_1就出现了boost_1_34_1\libs\regex\src\regex.cpp(0)NMAKE : fatal error U1077: 'cl' : return code '0x2'错误.听说一位大牛,vc6编译了boost_1_34_1,小心翼翼的问,结果回答 我的编译选项有问题,我看了看,没有问题,编译boost1_33_1也是一样,程序牛不耐烦了,说了一句,编译选项的问题,一定要别人来检查.只好自力更生,出现 fatal error U1077: 'cl' : return code '0x2'一般是出现了vc不认识字符,打开文件一看,一段注释,全部删去注释,继续编译,ok了,程序大牛害人不浅,不知道他是如何蒙混vc编译器过关的.1 下载boost http://www.boost.org/下载,我所下载的版本是1.34.1。2.运行cmd .进入安装VC的目录例如c:\Program Files\Microsoft Visual Studio\VC98\Bin目录3.运行VCVARS32.BAT(这个操作的作用是对此控制台注册VC的环境变量,这样我们就可以在任意目录使用cl进行编译程序)。4.进入Boost的目录例如\boost_1_34_1\tools\build\jam5.修改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)6.在刚才打开的控制台下运行 \boost_1_33_1\tools\build\jam\build_dist.bat  最终会在目录下生成一个名为bin.ntx86的文件夹里面包含一个bjam.exe可执行文件,将其拷贝到\boost_1_33_1目录下7.安装python可以在www.python.org获得,还好不是perl。8.设置环境变量SET MSVC_ROOT=c:\Program Files\Microsoft Visual Studio\VC98SET VISUALC=c:\Program Files\Microsoft Visual Studio\VC98 SET JAM_TOOLSET=VISUALCSET PYTHON_ROOT=C:\Python25SET PYTHON_VERSION=2.5需要注意的是MSVC_ROOTVISUALC和后面的配置不能有引号,也不能有空格,因为boost编译时要拼接路径的。 9开始编译 bjam  --build-dir=C:\build-boost --toolset=msvc -sBUILD=debug release static/dynamic",将安装在默认目录C:\Boost 10 默认是不编译regex的,运行VCVARS32.BAT,进入boost\libs\regex\build,运行nmake -fvc6.mak,boost\libs\regex\build多了一个vc6的文件夹,里面是很多lib和dll文件。例子#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.str()<<endl;}else{cout<<"Error Input"<<endl;}return 0;} 输入: select name from table输出: str:select name from table   str:name   str:table  


阅读全文(5765) | 回复(0) | 编辑 | 精华
 



发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.291 second(s), page refreshed 144770437 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号