2011-12-19 73 views
8

我可以創建.o文件將G ++ -c TEST.CPP -std =的C++ 0x,但不能連接它,得到了下一個錯誤:編譯的std :: regex_iterator用gcc

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

哪個版本的GCC? ''實際上並沒有實施到4.6.2。另外,爲什麼不使用'std :: cregex_iterator'呢? – 2011-12-19 13:14:39

+0

@Kerrek SB,4.6.1 – Yola 2011-12-19 13:16:51

+1

你有沒有考慮過使用boost regex庫? boost :: regex和boost :: xpressive都具有完整的功能。 – mark 2011-12-19 15:05:15

回答