读书人

关于boost:regex解决思路

发布时间: 2012-02-14 19:19:19 作者: rapoo

关于boost::regex
大家好!
我在ubuntu中编译安装了boost 1.38,安装过程没有什么异常,大概用了1个小时左右。
测试时出现了问题。

C/C++ code
#include <iostream>#include <boost/regex.hpp>#include <string>intmain(){    std::string regstr = "(\\d+)";    boost::regex expression(regstr);    std::string testString = "192.168.4.1";    boost::smatch what;    if( boost::regex_search(testString, expression) )    {        std::cout<< "Have digit" << std::endl;     }    return 0;}

编译是出现了好几屏很晦涩的错误,
类似
/tmp/ccUwAevw.o: In function `boost::re_detail::perl_matcher<__gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::extend_stack()':
test.cpp:(.text._ZN5boost9re_detail12perl_matcherIN9__gnu_cxx17__normal_iteratorIPKcSsEESaINS_9sub_matchIS6_EEENS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEE12extend_stackEv[boost::re_detail::perl_matcher<__gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::extend_stack()]+0x20): undefined reference to `boost::re_detail::get_mem_block()'

可我在用smart_ptr时却很正常,有人遇到过类似的问题吗?

[解决办法]
我在1.35下面没有发现问题vs2005 sp1

读书人网 >C++

热点推荐