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