boost_1_34_1在c++builder6编译(把所有dll文件复制到windows系统目录,所以lib文件复制到bcb6\lib目录)
boost_1_34_1.zip boost 正则表达式 bcb6编译boost_1_34
有个项目要对大量的文本信息进行分析,以前的方法是自己写函数然后进行分析。现在发现一个正则表达式的处理方法,其实正则表达式早就知道的,但是一直么有怎么深入的了解,呵呵,今天发现正则表达式果然在真方面胜人一筹啊。
首先到http://www.boost.org去下载boost_1_34_1.zip(我是在windows下,所以下载的是zip的,当然可以根据不同的系统去下载不同的包了。其实还是转到一个开源的地址下载的。23M吧)。下载完毕后,解压到某个目录就可以了,然后在命令行模式下到这个目录[%Boost]\Libs\RegEx\Build,然后直接用命令make -f bcb6.mak,最终编译完成,会在[%Boost]\Libs\RegEx\Build目录生成一个BCB目录,在这个目录生成了很多lib文件和dll文件,把所有dll文件复制到windows系统目录,所以lib文件复制到bcb6\lib目录。
然后再设置BCB6 Project属性的Lib Path和Include Path为你安装boost的目录。
下面看一个例子:
//例子开始-------------------------
#pragma hdrstop
#include "Unit1.h"
#include <boost/regex.hpp>
#include <string>
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
try {
char *src_str = "<meta http-equiv=\"content-type\" content=\"text/html; charset=x-sjis\">"; // 対象文字列
boost::regex rx( "<META +HTTP-EQUIV=(.*) +CONTENT=(.*) +CHARSET=(.*)>", boost::regex_constants::normal|boost::regex_constants::icase );
boost::cmatch results;
if( boost::regex_match( src_str, results, rx ) == true ) {
AnsiString s;
for( size_t i=1;i<results.size(); ++i ) {
s += "$" + IntToStr(i) + "=" + AnsiString( results.str(i).c_str() ) + "\r\n";
}
ShowMessage( s );
}
}
catch( std::runtime_error &e ) {
throw Exception( e.what() );
}
}
//---------------------------------------------------------------------------
//例子结束-------------------------
然后编译,这个时候很可能会出现错误:[Linker Fatal error] Unable to open file 'LIBBOOST_REGEX-BCB-MT-1_34_1.LIB',我在我编译的boost目录下根本没有查找到这个文件,十分的郁闷。但是这个文件是存在的。
然后在网上搜索的这个类似的错误,都没有找到解决方法,根本就没有LIBBOOST_REGEX-BCB-MT-1_34_1.LIB相关的搜索结果。然后我就直接修改了LIBBOOST_REGEX-BCB-MT-1_34.LIB为LIBBOOST_REGEX-BCB-MT-1_34_1.LIB,然后编译顺利通过,呵呵
如果你们有更好的解决方法给我留言啊,或者给我发email:diyisoft@163.com
http://diyisoft.blog.163.com/blog/static/1117807502007724101954460/
相关文章
- C++ sizeof(a)/sizeof(a[0]) 的正确用法
- windows下使用vscode编写运行以及调试C/C++
- C++对C的增强
- C# 编写Windows Service(windows服务程序)
- C/C++ stat()函数:获取文件状态
- ONS C++ Windows SDK 调试方法及注意事项
- [windows菜鸟]C#中调用Windows API参考工具
- [c++菜鸟]《Accelerate C++》习题解答
- [c++菜鸟]《Accelerate C++》读书笔记
- 59 C++ - 类模板
- C++第11周项目3(9)——亲密数
- C++学习、成长记录(2011-2012第一学期第17周)
- Windows上C++使用共享内存进行进程间通讯
- 推荐一个C++枚举转字符串的开源项目magic_enum
- C++ 虚析构函数
- 《C和C++代码精粹》——2.15 小结
- 《C++ Primer Plus(第6版)中文版》导读
- 基于MFC(C++)实现(界面)学委作业管理系统【100010733】
- Windows开发进阶之VC++中如何实现对话框的界面重绘
- C++ 中的friend类和friend函数
- Windows C++ 程序崩溃收集工具
- Windows使用WxWidgets开发界面(c++)环境搭建
- 请问c++中的#include "stdafx.h"是什么意思?
- windows 编译C++ boost库(超详细)
- C/C++ Windows API——文件读写
- C/C++ Windows API——关闭、启动、查询服务状态
- Windows下通过命令行编译C/C++程序