zl程序教程

您现在的位置是:首页 >  后端

当前栏目

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

C++Windows文件 编译 目录 所有 dll Boost
2023-09-11 14:19:08 时间

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/