提升正则表达式抛出错误

时间:2010-03-30 19:58:16

标签: c++ regex boost

当我尝试使用eclipse

在g +编译器中编译代码时出现以下错误
In function `ZSt19__iterator_categoryIPKSsENSt15iterator_traitsIT_E17iterator_categoryERKS3_':
C:/Program Files (x86)/mingw/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/bits/stl_algobase.h:(.text$_ZN5boost11basic_regexIcNS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEE6assignEPKcS7_j[boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::assign(char const*, char const*, unsigned int)]+0x22): undefined reference to `boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::do_assign(char const*, char const*, unsigned int)'
collect2: ld returned 1 exit status
Build error occurred, build is stopped

我所做的就是这句话

boost :: regex re(“\ s +”);以及标题#inlucde

你能告诉我怎么办吗?

1 个答案:

答案 0 :(得分:0)

您似乎没有链接到正确的库。大多数Boost库都是仅限标头的,因此您无需在链接时对它们执行任何操作。但是,Boost :: regex是少数要求您与库链接并为编译器提供正确标头的少数几个。

解决之后,你需要重新检查你的字符串中的转义 - 现在你传递“\ s”,这是不允许的(猜测,你可能想要“\ s +”代替)。