2010-03-30 4 views
0

je l'erreur suivante lorsque je tente de compiler mon code en g + compilateur en utilisant EclipseBoost Regex lancer une erreur

In function `ZSt19__iterator_categoryIPKSsENSt15iterator_traitsIT_E17iterator_categoryERKS3_': 
C:/Program Files (x86)/mingw/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/bits/stl_algobase.h:(.text$_ZN5boost11basic_regexIcNS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEE6assignEPKcS7_j[boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::assign(char const*, char const*, unsigned int)]+0x22): undefined reference to `boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::do_assign(char const*, char const*, unsigned int)' 
collect2: ld returned 1 exit status 
Build error occurred, build is stopped 

Tout ce que je l'ai fait est cette déclaration

boost :: regex re (» \ s + "); avec l'en-tête #inlucde

Pourriez-vous me dire comment procéder?

+0

Si votre code est petit, veuillez le montrer et éventuellement votre ligne g ++ si eclipse le montre. Vous n'êtes pas correctement lié à une bibliothèque nécessaire. –

Répondre

0

Il semble que vous ne liez pas à la bibliothèque correcte. La plupart des bibliothèques Boost sont en-tête uniquement, vous n'avez donc rien à faire à leur sujet au moment de la liaison. Boost :: regex, cependant, est l'un des rares qui nécessite que vous liez avec une bibliothèque en donnant au compilateur les en-têtes appropriés. Après avoir corrigé cela, vous aurez besoin de re-vérifier l'échappement dans votre chaîne - en ce moment votre passage "\ s", ce qui ne devrait pas être autorisé (en un clin d'oeil, vous voulez probablement "\ s + " au lieu).