Скомпилируйте std :: regex_iterator с помощью gcc - PullRequest
8 голосов
/ 19 декабря 2011

Я могу создать .o файл с g ++ -c test.cpp -std = c ++ 0x , но не могу связать его, получил следующие ошибки:

test.cpp:(.text+0xe5): undefined reference to `std::regex_iterator<char const*, char, std::regex_traits<char> >::regex_iterator(char const*, char const*, std::basic_regex<char, std::regex_traits<char> > const&, std::bitset<11u>)'
test.cpp:(.text+0xf1): undefined reference to `std::regex_iterator<char const*, char, std::regex_traits<char> >::regex_iterator()'

Код:

#include <regex> 
#include <iostream> 

#include <string.h>

typedef std::regex_iterator<const char *> Myiter; 
int main() 
{ 
    const char *pat = "axayaz"; 
    Myiter::regex_type rx("a"); 
    Myiter next(pat, pat + strlen(pat), rx); 
    Myiter end; 


    return (0); 
} 

1 Ответ

13 голосов
/ 18 января 2012

Стандартная библиотека GNU C ++ поддерживает <regex>, но только до версии 4.9.0 . (Заголовки присутствовали в более ранних версиях, но были непригодны для использования.)

Насколько я понимаю, другие компиляторы его не поддерживают.

Вы можете использовать другую библиотеку , если вы используете более старый GCC.

...