Domanda

Ricevo un errore del linker con il seguente codice:

#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
È stato utile?

Soluzione

Da 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();

Suppongo che non sia ancora pronto.

AGGIORNAMENTO: l'attuale bleeding edge GCC (SVN @ 153546) non sembra avere ancora l'implementazione.

Altri suggerimenti

è possibile ottenere lo stato di impianto da: http: //gcc.gnu. org / onlinedocs / libstdc ++ / manuale / bk01pt01ch01.html # manual.intro.status.standard.tr1

per usare regex, puoi installare la libreria boost e il loro tr1 ha già incluso regex.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top