• boost_1_34_1在c++builder6编译(把所有dll文件复制到windows系统目录,所以lib文件复制到bcb6lib目录)


    boost_1_34_1.zip boost 正则表达式 bcb6编译boost_1_34

           有个项目要对大量的文本信息进行分析,以前的方法是自己写函数然后进行分析。现在发现一个正则表达式的处理方法,其实正则表达式早就知道的,但是一直么有怎么深入的了解,呵呵,今天发现正则表达式果然在真方面胜人一筹啊。

           首先到http://www.boost.org去下载boost_1_34_1.zip(我是在windows下,所以下载的是zip的,当然可以根据不同的系统去下载不同的包了。其实还是转到一个开源的地址下载的。23M吧)。下载完毕后,解压到某个目录就可以了,然后在命令行模式下到这个目录[%Boost]LibsRegExBuild,然后直接用命令make -f bcb6.mak,最终编译完成,会在[%Boost]LibsRegExBuild目录生成一个BCB目录,在这个目录生成了很多lib文件和dll文件,把所有dll文件复制到windows系统目录,所以lib文件复制到bcb6lib目录。

         然后再设置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() ) + " ";
             }
             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/

  • 相关阅读:
    iOS开发基础-UITableView基本属性
    iOS开发基础-UITableView控件简单介绍
    iOS开发基础-UIScrollView实现图片缩放
    iOS开发基础-UIScrollView基础
    iOS开发基础-序列帧动画之Tom猫
    iOS开发基础-KVC简单介绍
    iOS开发基础-九宫格坐标(6)
    iOS开发基础-九宫格坐标(5)
    iOS开发基础-九宫格坐标(4)
    iOS开发基础-九宫格坐标(3)之Xib
  • 原文地址:https://www.cnblogs.com/findumars/p/8447842.html
Copyright © 2020-2023  润新知