IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques Discussion :

probleme de compilation avec boost


Sujet :

Bibliothèques

  1. #1
    Membre actif
    Avatar de doof
    Inscrit en
    Août 2003
    Messages
    160
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 160
    Points : 294
    Points
    294
    Par défaut probleme de compilation avec boost
    Salut, j'essaie de compiler un exemple de boost regex, mais j'ai toujours un probleme de reference non définie.

    l'exemple est celui ci : http://www.boost.org/libs/regex/example/snippets/partial_regex_match.cpp

    et mon erreur est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    /tmp/cceFXpZq.o(.gnu.linkonce.t._ZN5boost11basic_regexIcNS_12regex_traitsIcEESaIcEEC1EPKcjRKS3_+0x22): In function `boost::basic_regex<char, boost::regex_traits<char>, std::allocator<char> >::basic_regex[in-charge](char const*, unsigned, std::allocator<char> const&)':
    : undefined reference to `boost::reg_expression<char, boost::regex_traits<char>, std::allocator<char> >::reg_expression[not-in-charge](char const*, unsigned, std::allocator<char> const&)'
    /tmp/cceFXpZq.o(.gnu.linkonce.t._ZN5boost9re_detail12perl_matcherIN9__gnu_cxx17__normal_iteratorIPKcSsEESaINS_9sub_matchIS6_EEENS_12regex_traitsIcEESaIcEEC1ES6_S6_RNS_13match_resultsIS6_S9_EERKNS_14reg_expressionIcSB_SC_EENS_15regex_constants12_match_flagsE+0x75): In function `boost::re_detail::perl_matcher<__gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, boost::regex_traits<char>, std::allocator<char> >::perl_matcher[in-charge](__gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::match_results<__gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > >&, boost::reg_expression<char, boost::regex_traits<char>, std::allocator<char> > const&, boost::regex_constants::_match_flags)':
    (je met que le debut, mais il a une pluie de "references non definies")

    je compile avec gcc par cette simple commande : "g++ main.cpp" sous linux.

    en recherchant sur le forum, ca serait un probleme de "linkage" mais je ne vois vraiment pas comment faire.

    Une ame charitable pourait-elle m'aider ?

  2. #2
    Membre actif
    Avatar de doof
    Inscrit en
    Août 2003
    Messages
    160
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 160
    Points : 294
    Points
    294
    Par défaut
    Bon, ben j'ai trouvé, j'ai fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    c++ main.cpp -lboost_regex
    Par contre, le coup du -lboost_regex, je l'ai deviné, j'ai rien trouvé d'officiel à ce sujet

  3. #3
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 275
    Points : 10 985
    Points
    10 985
    Par défaut
    Parce que c'est très classique ?
    La partie sur les regex est composée d'un ensemble de bibliothèques statiques en libXXX.a, et lier une bibliothèque statique sous *nix se fait en rajoutant -lXXX.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  4. #4
    Membre actif
    Avatar de doof
    Inscrit en
    Août 2003
    Messages
    160
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 160
    Points : 294
    Points
    294
    Par défaut
    Merci beaucoup Luc !

    Ca m'évitera d'essayer pendant des heures plusieurs noms possibles. Je me doutais bien que ca devait se trouver quelquepart, mais seulement, ayant tres peu d'heures de c++ au compteur, je ne savais pas.

    D'ailleurs, je viens de voir que le fichier en question s'appelle -lboost_regex-gcc-mt-1_31 , cela change-t-il quelquechose de le mettre en entier ?

  5. #5
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 275
    Points : 10 985
    Points
    10 985
    Par défaut
    -lxxx n'est pas un fichier, c'est une ooption pour l'éditeur de liens. Le fichier, c'est libxxx.a
    Pour ce qui est du nom entier ou pas, c'est juste une histoire de lien symbolique. Tu donnes le nom entier avec numéro de version si tu sais que des choses importantes changent entre deux versions installées sur ton système -- et que ton code ne serait donc plus compatible.

    Sinon, il peut être interessant de spécifier si tu veux la version multi-tâches ou pas.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  6. #6
    Membre actif
    Avatar de doof
    Inscrit en
    Août 2003
    Messages
    160
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 160
    Points : 294
    Points
    294
    Par défaut
    Oui, erreur de copé/collé de ma part, j'avais recopié l'option que je viens de tester, bien sur, il fallait comprendre sans le -l devant.

    Donc le n° de version sert juste a spécifier la version dans le cas ou c'est nécessaire, ok

    Pour ce qui est du multi-tâches, je n'en suis pas encore là, mais ca pourait être interessant de savoir le faire, si tu pouvais m'en dire plus serait bien-venu !

    D'une manière plus générale, je trouve facilement de tres bons tutos sur le langage lui-même mais pas grand chose pour ce qui gravite autours de la compilation (par exemple, je n'ai rien trouvé sur le linkage, ne serais-ce qu'en expliquer la théorie, les bons reflexes, et bien sur la pratique) , aurais-tu un bon lien vers ceci (orienté gcc-linux) ?

  7. #7
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 275
    Points : 10 985
    Points
    10 985
    Par défaut
    Je n'ai pas vraiment de liens. Le man peut-être ?

    Sinon, pour le mt, c'est que si tu dois compiler un programme qui sera MT, alors il faut lier avec les bibliothèques qui ont été compilées pour ce mode. C'est tout. (et également compiler les tiennes en mode MT).
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  8. #8
    Membre actif
    Avatar de doof
    Inscrit en
    Août 2003
    Messages
    160
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 160
    Points : 294
    Points
    294
    Par défaut
    Ok, je te remercie pour toutes ces précisions, je verrais pour le multi-taches au moment voulu, déjà tu m'a donné des indices.

    Dans un premier temps, j'ai déjà largement de quoi m'occuper à maitriser boost::regex

    merci pour tout !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. probleme de compilation avec wx-devcpp
    Par anarpunk dans le forum Autres éditeurs
    Réponses: 7
    Dernier message: 27/12/2005, 11h13
  2. John :: Help!! Probleme de compilation avec SDL_gfx
    Par Raggajohnjohn dans le forum Autres éditeurs
    Réponses: 5
    Dernier message: 29/10/2005, 15h46
  3. Problème de compilation avec gcc
    Par Niktou dans le forum Linux
    Réponses: 9
    Dernier message: 27/09/2005, 15h18
  4. Réponses: 19
    Dernier message: 28/06/2005, 14h16
  5. Problemes de compilation avec g++ sous linux
    Par Selimmel dans le forum Autres éditeurs
    Réponses: 3
    Dernier message: 19/09/2003, 13h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo