11

我收到以下代码的链接器错误:

#include <regex>

int main()
{
    std::regex rgx("ello");
    return 0;
}

test.o: In function `basic_regex':
/usr/lib/gcc/i586-redhat-linux/4.4.1/../../../../include/c++/4.4.1/tr1_impl/regex:769: undefined reference to `std::basic_regex<char, std::regex_traits<char> >::_M_compile()'
collect2: ld returned 1 exit status
4

2 回答 2

8

gcc-4.4.1/include/c++/4.4.1/tr1_impl/regex

template <...>
class basic_regexp {
...
   private:
      /**
       * @brief Compiles a regular expression pattern into a NFA.
       * @todo Implement this function.
       */
      void _M_compile();

我猜它还没有准备好。

更新:当前最前沿的 GCC (SVN @153546) 似乎还没有实现。

于 2009-10-26T05:58:54.520 回答
1

您可以从以下网址获得实施状态:http: //gcc.gnu.org/onlinedocs/libstdc++/manual/bk01pt01ch01.html#manual.intro.status.standard.tr1

要使用正则表达式,您可以安装 boost 库,并且它们的 tr1 已经包含正则表达式。

于 2009-12-04T05:34:52.077 回答