2012-03-24 23 views
0

Ich muss reguläre Ausdrücke in meinem Programm verwenden. Ich habe mich dafür entschieden, die Boost-Bibliothek dafür zu verwenden, aber beim Kompilieren bekomme ich seltsame Fehler. Was ist falsch?? Es ist mein Code:Boost :: regex_match schlägt fehl

... 
#include <boost/regex.hpp> 
... 
using namespace boost; 
... 
map <string, double>::iterator container::find (string toFind) 
{ 
    iterator it; 
    for (it=mainMap.begin(); it!=mainMap.end(); it++) 
    { 
     regex e ((*it).first);   //this line works correct 
     if (regex_match (toFind, e)) 
      return it; 
    } 
    return it; 
} 
... 

Fehlermeldung für die Buchung zu groß ist, gibt es seinen Anfang:

tmp/cczkfDcy.o (.gnu.linkonce.t._ZN5boost11basic_regexIcNS_12regex_traitsIcEESaIcEED1Ev + 0x11): In Funktion boost::basic_regex<char, boost::regex_traits<char>, std::allocator<char> >::~basic_regex()': : undefined reference to boost :: reg_expression, std :: Allocator> :: ~ reg_expression()‘...

Antwort

1

Anzahl:

-lboost_regex 

zu Ihren Compiler-Optionen.

+0

Danke)) Es funktioniert! –

+1

Sie können Antworten aufwerten und akzeptieren, die hilfreich sind - http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work :) –