Linux下安装Boost库及正则表达式库的使用

Linux下安装Boost库及正则表达式库的试用 引用并回复

---
什么是Boost,它怎么好,这个去google一下,就知道了。

至于 Boost怎么安装,怎么使用,我能搜到的大多是在Windows下搞的,过程很简单。现在我对Linux系统很不熟悉,所使用的安装、使用方法可能有些笨,不过我是决意不会为了安装的简便就撤回Windows,这是个原则问题,因为再也不想在windows下戴着枷锁舞蹈了。

开始吧。
---
1、下载

  首先,请仔细阅读http://www.boost.org/more/getting_started.html,英语不好的,这里有一份中文版的: http://blog.csdn.net/goodboy1881/archive/2006/03/27/640004.aspx

  现在,可以从SourcdForge上下载整理好的boost-1_33_1源码发行版,但如果你喜欢尝试最新的,就用CVS直接从boost仓库中拉下源码包,只要你愿意忍受不稳定性的折磨(大多时候很稳定):

cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/boost login
[Hit when it asks for a password]
cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/boost checkout boost
cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/boost logout

2、安装

  首先解包,注意不要破坏其目录结构,下文以$BOOST代替解包后boost所在的目录,譬如,我是从sourceforge上下的boost_1_33_1.tar.gz,解包后的路径是~/opt/boost_1_33_1。

  然后从源码包编译出BJam工具。这是因为Boost 使用自己的编译系统BJam来保证Boost在任何平台上都能用bjam编译。步骤如下:

  $ cd $BOOST/tools/jam/src
  $ ./build.sh

build脚本执行完毕后,会在当前目录的binlinuxx86子目录下生成bjam,将之mv到$BOOST下。

  现在可以编译安装boost库了:

  若采用默认编译安装,安装至/usr/local下,只需 ./bjam "-sTOOLS=gcc" " install即可。
  若指定编译安装目录,只需./bjam "-sTOOLS=gcc" "--includedir=$includepath" "--libdir=$libpath" install即可。
  若不全部编译安装,只需./bjam "-sTOOLS=gcc" "--with-"即可,譬如我只是想用regex库,./bjam "-sTOOLS=gcc" "--with-regex"就可以了。

3、试用
  
  regex如何使用,这是近期的学习内容。现在只需找份代码,测试一下安装的regex能不能用,就可以了。从《Beyond the C++ Standard Library: An Introduction to Boost》书中找到一份regex应用代码如下:
//testRegex.cpp
#i nclude <iostream>
#i nclude <string>
#i nclude <boost/regex.hpp>

int main()
{
  std::cout << "Enter a regular expression:/n";
  std::string s;
  std::getline(std::cin, s);
  try
  {
    boost::regex reg(s);
    std::cout << "Enter a string to be matched:/n";
    std::getline(std::cin,s);
    if (boost::regex_match(s,reg))
      std::cout << "That's right!/n";
    else
      std::cout << "No, sorry, that doesn't match./n";
  }
  catch(const boost::bad_expression& e)
  {
  std::cout << "That's not a valid regular expression! (Error: " << e.what() << ") Exiting.../n";
  }
  return 0;
}
编译:
g++ testRegex.cpp -I /usr/local/include/boost_1_33_1 -L /usr/local/lib -lboost_regex-gcc -o testRegex

运行:
./testRegex

  可能会出错,出错信息是说有动态库文件找不到,这是因为咱编译安装的regex库是放在 /usr/local/lib中的,而系统执行程序时,默认的库搜索路径是/usr/lib,所以提示找不到。只需要在/usr/lib中建立一些指向 /usr/local/lib中的boost_regex库文件的连接即可。可能还有更好的方法,比如修改系统运行程序时的默认搜寻路径,不过我不会改,日后再说。

  做了上面的工作后,testRegex就可以运行了,测试一下执行情况,如下面的输入与输出:
Enter a regular expression:

/d{5}

Enter a string to be matched:

12345

That's a right!

  OK了,剩下的事情就是学习正则表达式了。
 

转自:

http://www.zhidun.com/phpbb/viewtopic.php?p=2512&sid=5b255ccb8e3c9a52bbc7b1f92193762d

没有更多推荐了,返回首页

私密
私密原因:
请选择设置私密原因
  • 广告
  • 抄袭
  • 版权
  • 政治
  • 色情
  • 无意义
  • 其他
其他原因:
120
出错啦
系统繁忙,请稍后再试

关闭