2009-10-26 26 views
9

は、私は次のコードでリンカエラーを取得:std :: regex - リンクが必要なライブラリがありますか?

#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 
+0

http://www.johndcook.com/cpp_regex.html#headernamespace –

+0

std :: tr1がコンパイラに存在しないことがわかりました。 – Scott

+0

私のバージョンは:gcc version 4.4.1 20090725(Red Hat 4.4.1-2)(GCC) – Scott

答えて

7

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

gcc-4.4.1/include/c++/4.4.1/tr1_impl/regexから、私はそれはまだ準備ができていないのですね。

更新:最新の出血端GCC(SVN @ 153546)はまだ実装されていないようです。

+0

ああ。 :)周囲に浮かんでいる例があるという不思議。 – Scott

+0

まあ、私は出血の端gccを使用していないと思います。 – Scott

+9

私はこれを開発者にするのは非常にサディスティックだと言わなければならない!コンパイル時に、実装されていないという警告を表示して、開発者が何か間違っていると思って長時間失ってしまうのを避けるべきです。 – krico

関連する問題