c++ 使用boost regex库 总结

用java的时候觉得挺折腾,回头来弄c++才知道什么叫折腾。。。汗。。。

首先参考我写的这篇文章:http://www.cnblogs.com/qrlozte/p/4100892.html

我从sourceforge把整个boost的zip下载下来以后,我主要是在编译 boost regex的时候出问题了:boost有很多library,regex只是其中一个,怎么编译regex?

当然,第一步是查看文档,找到boost-path/doc/html/index.html打开,翻了半天倒找regex的说明文档(其实可以直接从boost-path/libs/regex/index.html直接找到)

文档里面说:

Building from Source

The Regex library is "just a bunch of source files": nothing special is required to build them.

You can either build the files under boost-path/libs/regex/src/*.cpp as a library, or add them directly to your project. This is particularly useful if you need to use specific compiler options not supported by the default Boost build.

于是找到这个目录,确实发现了不少的cpp文件,直接打开terminal

g++ -c *.cpp

于是报了一大堆找不到头文件的error,一看,是类似于<boost/regex/xxx.hpp>之类的找不到,回过头去看文档,于是,在“Getting Started on Windows”这个页面找到了说明,发现boost-path/boost中全是头文件,该页面说明如下:

This is a sketch of the resulting directory structure:

boost_1_57_0\ .................The “boost root directory”
   index.htm .........A copy of www.boost.org starts here
   boost\ .........................All Boost Header files
   lib\ .....................precompiled library binaries
   libs\ ............Tests, .cpps, docs, etc., by library
     index.html ........Library documentation starts here
     algorithm\
     any\
     array\
                     …more libraries…
   status\ .........................Boost-wide test suite
   tools\ ...........Utilities, e.g. Boost.Build, quickbook, bcp
   more\ ..........................Policy documents, etc.
   doc\ ...............A subset of all Boost library docs

然后就把boost-path/boost这个文件夹拷贝到MinGW/include目录下,也就是说,得到:MinGW/include/boost,从而成为了编译器默认搜索路径的一部分

再次打开terminal:

g++ -c *.cpp // 编译成.o文件
ar -r boost_regex.a *.o // 打包成.a文件(库文件,类似java的jar包,但是要配合该库的头文件才能使用)

好,参照这篇文章的步骤:http://www.cnblogs.com/qrlozte/p/4100892.html

大功告成

时间: 2024-10-10 08:56:36

c++ 使用boost regex库 总结的相关文章

#include &lt;boost/regex.hpp&gt;

boost C++的正则表达式库boost.regex可以应用正则表达式于C++.正则表达式大大减轻了搜索特定模式字符串的负担,在很多语言中都是强大的功能. boost.regex库中两个最重要的类是boost::regex和boost::smatch,它们都在boost/regex.hpp文件中定义.前者用于定义一个正则表达式,而后者可以保存搜索结果. 小结:C++的正则表达式库早已有之,但始终没有哪个库纳入到标准化流程中.目前该库已经顺利的成立新一代C++标准库中的一员,结束了C++没有标准

vs 2005 使用 boost regex

第一步: Boost 入门及其VS2005下编译boost库 boost.regex库安装指南 Boost下载和Boost安装去哪下载Boost呢?英文http://www.boost.org ,中文http://boost.c-view.org,可以找到一个.zip或.tar.gz格式的压缩包.下载完毕后,解压到某个目录,比如boost_1_26_0,里面一般有这么几个子目录:boost.libs.more.people.status.tools,看看没问题就行了.如果Boost更新时您懒得去

#墙裂推荐Boost regex# C,C++11,Boost三种regex库性能比较

在最近的一个项目中,发现之前的正则匹配模块对于长字符串匹配性能损失比较厉害,因此对长字符串下的各种正则匹配进行了略微研究并附有实例.本文参考了博客http://www.cnblogs.com/pmars/archive/2012/10/24/2736831.html(下文称文1),这篇文章也是对三种regex库进行了比较,但有些地方我还有一些自己的见解,特此罗列如下,感谢这篇文章的作者. 1.C regex库 由于项目中一直用的都是C regex库,所以首先对C regex进行了研究.对于C r

Boost::Regex代码示例

看一个别人给出的例子,当我们输入“select 字符串 from 字符串”的时候,会得到输出:如果不符合这个格式,就会输出error.注意:在命令行下输入的时候,按ctrl+Z.回车表示行输入结束. #include <cstdlib> #include <stdlib.h> #include <boost/regex.hpp> #include <string> #include <iostream> using namespace std;

在C++ Builder6上使用Boost正则表达式库

本文关键词:正则表达式 c++ python 软件 正则表达式是一种模式匹配形式,它通常用在处理的文本程序中.比如我们经常使用的grep工具,还是perl语言都使用了正则表达式. 正则表达式是一种模式匹配形式,它通常用在处理的文本程序中.比如我们经常使用的grep工具,还是perl语言都使用了正则表达式.传统的C++处理正则表达式是非常麻烦的,这也成为很多其他语言爱好者的笑柄,现在情况不一样了,因为有了boost. Boost是一个基于Template的开发源代码库,在这个库中有很多子库用来高效

boost::string or boost::regex

有时候写代码时会遇到下面问题 如果有一个文本文件,其包括内容类似于C语言,当中有一行例如以下格式的语句: layout (local_size_x = a,local_size_y = b, local_size_z = c) in; 当中用蓝色标记出的部分(layout, local_size_x, local_size_y, local_size_z, in)为keyword,斜体字部分(a, b, c)为数据类型为unsigned int的数字,请编写一个函数,用于从文件里抽取出a, b,

boost::regex

常见用法: boost::regex express; regex_match(str,express);  bool smatch what; cmatch what; typedef match_results<const char*> cmatch;typedef match_results<std::string::const_iterator> smatch; regex_search(str,what,express);bool what[0]; what[1]; re

Boost::thread库的使用

阅读对象 本文假设读者有几下Skills [1]在C++中至少使用过一种多线程开发库,有Mutex和Lock的概念. [2]熟悉C++开发,在开发工具中,能够编译.设置boost::thread库. 环境 [1]Visual Studio 2005/2008 with SP1 [2]boost1.39/1.40 概要 通过实例介绍boost thread的使用方式,本文主要由线程启动.Interruption机制.线程同步.等待线程退出.Thread Group几个部份组成. 正文 线程启动 线

thrift 编译调用boost动态库

In the project properties you must also set HAVE_CONFIG_H as force include the config header: "windows/confg.h" By default lib/cpp/windows/force_inc.h defines: #define BOOST_ALL_NO_LIB 1 #define BOOST_THREAD_NO_LIB 1 This has for effect to have