std :: regex & # 8212; Есть ли какая-то библиотека, которую нужно связать?

StackOverflow https://stackoverflow.com/questions/1623250

  •  06-07-2019
  •  | 
  •  

Вопрос

Я получаю ошибку компоновщика со следующим кодом:

#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
Это было полезно?

Решение

Из 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), похоже, еще не имеет реализации.

Другие советы

вы можете получить статус имплементации из: http: //gcc.gnu. орг / onlinedocs / libstdc ++ / ручной / bk01pt01ch01.html # manual.intro.status.standard.tr1

чтобы использовать regex, вы можете установить библиотеку boost, и их tr1 уже содержит regex.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top